首页 > 解决方案 > 计算每个 store_id 有多少文章的最小时间戳

问题描述

我想在 article_id 级别store_Astore_B使用arrival_timestamp

请参阅以下示例:

主表


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

输出表


storeA_count_first_articles     storeB_count_first_articles
3                                1

标签: pythonpandas

解决方案


这是一种方法:

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"])

输出:

store_id    A  B
article_id  3  1

推荐阅读