此问题已在此处有答案:
Max and Min date in pandas groupby(3个答案)
5天前关闭。
这篇文章是编辑并提交审查5天前.
这是我的数据的一个例子
| ID|购买日期|购买的项目数|
| - -----|- -----|- -----|
| 十二岁|2023年12月10日|2|
| 十二岁|2019 -01- 22 2019 -01- 22|三十四|
| 五十六|2020年3月24日|十二岁|
| 二十三|2012年12月23日|一个|
| 二十三|23-05-2012|三个|
| 二十三|23-06-2012| 4|
| 二十四|2023年12月10日|二十四|
| 三十八|23-02-2012|二十一|
| 十六|2023年12月10日|三十四|
| 五十四个|2019 -09- 02||
| 五十四个|2020年3月24日|十九|
我想提取每个“ID”的最高和最低purchaseNo以及它们的制作日期。预期结果应该如下所示:
| ID|最大购买日期|maxPurchaseAmount|最少购买日期|leastPurchaseAmount|
| - -----|- -----|- -----|- -----|- -----|
| 十二岁|2019 -01- 22 2019 -01- 22|三十四|2023年12月10日|2|
| 五十六|2020年3月24日|十二岁|2020年3月24日|十二岁|
| 二十三|23-06-2012| 4| 2012年12月23日|一个|
| 二十四|2023年12月10日|二十四|2023年12月10日|二十四|
| 三十八|23-02-2012|二十一|23-02-2012|二十一|
| 十六|2023年12月10日|三十四|2023年12月10日|三十四|
| 五十四个|2020年3月24日|十九|2019 -09- 02|十一|
请问我怎么才能做到这一点?
我试了这个代码:
details = data.groupby('ID').min()['purchaseDate']
但我得到一个KeyError:'purchaseDate'。我已经仔细检查过了,以确保该栏没有拼错。我已经确保填写(0)
我也试着这样做:
details = data.groupby('ID').min()['numOfItemsPurchased']
它不会抛出错误,但我不知道如何向其中添加更多列
我试过这个代码:
data.groupby(['ID']).agg({'purchaseDate': [np.min,np.max],
'numOfItemsPurchased' : [np.min,np.max]})
然后我得到一个TypeError:“int”和“str”的示例之间不支持“<=”
1条答案
按热度按时间cs7cruho1#
尝试:
图纸: