python - 在熊猫中按日期对前 n 个值进行分组
问题描述
我在熊猫中有以下数据集:
Item ID Order Date
1 2019-09-01
2 2019-09-01
3 2019-09-01
...
2 2019-10-11
3 2019-10-11
3 2019-10-12
我想从整个数据集中检索前 10 个订购商品,并按订购日期对它们进行分组。有时可能会发生这些物品尚未订购的情况。
我可以得到整个数据集的前 10 名dataset['Item ID'].value_counts().head(10)
。
dataset.groupby(['Order Date','Item ID']).count()
获取给定日期的所有项目,但不是整个数据集的总前 10 项以及它们在给定日期订购的数量。
我试图先用前 10 个项目过滤数据集。在第二步中,我将按提交日期分组,但我不确定这是否是一个聪明的解决方案。
解决方案
想法是首先Series.isin
按索引值过滤top
,然后创建有序Categorical
,所以最后的排序工作就像你需要的那样:
top = dataset['Item ID'].value_counts().head(10)
dataset = dataset[dataset['Item ID'].isin(top.index)]
dataset['Item ID'] = pd.Categorical(dataset['Item ID'], ordered=True, categories=top.index)
dataset = dataset.sort_values(['Order Date','Item ID'])
推荐阅读
- javascript - 如何在单页网站上随机化背景视频刷新?
- api - 在 redux-saga 中删除以 body 作为有效负载的 api 调用
- python - Django视图不从表单传递IP地址数据
- windows - Paramiko 如何处理 Windows .log 文件?
- php - 按钮类型提交不向服务器发送数据
- google-apps-script - 将逗号分隔的单元格拆分为多行,保留行详细信息
- javascript - 每天减少计数器目标值直到零
- python - 如何让 matplolib 输出具有填充不透明度而不是不透明度的 SVG
- windows - 用于测试重定向 URL 列表的 Windows Powershell 脚本
- python - 如何在pandas python库中隔离数据框中的最大值