Saya ingin menghitung pada tingkat article_id berapa banyak artikel yang tiba di store_A atau store_B terlebih dahulu dengan menggunakan arrival_timestamp

Lihat contoh di bawah ini:

Meja utama


arrival_timestamp           article_id   store_id

2019-04-01 11:04             2            A
2019-04-01 13:12             2            B
2019-04-01 08:24             4            A
2019-04-01 10:24             4            B
2019-04-10 07:00             7            A
2019-04-10 10:14             7            B
2019-04-23 07:34             9            A
2019-04-23 05:52             9            B

Tabel keluaran


storeA_count_first_articles     storeB_count_first_articles
3                                1

-1
user12625679 7 Juli 2020, 20:04

1 menjawab

Jawaban Terbaik

Berikut cara melakukannya:

first_arrivals = df.assign(first_arrival_timestamp = df.groupby("article_id")["arrival_timestamp"].transform("min")).\
   query("arrival_timestamp == first_arrival_timestamp")
pd.pivot_table(first_arrivals, columns="store_id", aggfunc="count", values=["article_id"])

Keluaran:

store_id    A  B
article_id  3  1
2
Roy2012 7 Juli 2020, 17:11