【发布时间】:2020-05-08 02:01:54
【问题描述】:
如何在 groupby 中滚动 12M 并返回每行的唯一值(最好在列表中)?
目前我有一个如下所示的熊猫数据框。我希望按 itemId 对它们进行分组,并用过去 12 个月内的唯一卖方 ID 列表替换卖方 ID(基于有效日期)。 EffectiveDate 是 monthEnd 格式。基本上我想查看每个月的每个 itemId,他们是过去 12 个月窗口内的唯一卖家 ID。
itemId sellerId effectiveDate
1975245 2585893 31280 2005-12-31
1975246 2585893 31280 2006-02-28
1975247 2585893 5407 2006-06-30
1975248 2585893 5407 2006-08-31
1975249 2585893 5407 2006-09-30
1975250 2585893 5407 2006-11-30
1975254 2585893 5407 2007-05-31
1975257 2585893 5407 2007-06-30
1975258 2585893 5407 2007-07-31
1975259 2585893 5407 2008-03-31
...
我想把它变成如下内容:
itemId uniqueSellerIds effectiveDate
1975245 2585893 [31280] 2005-12-31
1975246 2585893 [31280] 2006-02-28
1975247 2585893 [5407,31280] 2006-06-30
1975248 2585893 [5407,31280] 2006-08-31
...
我尝试过使用 groupby 然后滚动方法,但它不起作用。谢谢您的帮助。
【问题讨论】:
标签: python pandas dataframe pandas-groupby