python - Pandas Groupby 缺失行
问题描述
我有一个看起来像这样的数据框(实际 df 包含百万行),由第 1,2 周和第 3 周的数据组成。如果该周的 Qty 为 0,则这些行不存在。例如,第 2 周的产品 A 数量 = 0,因此数据框中没有显示第 2 周的行。
产品 | 星期 | 数量 |
---|---|---|
一个 | 1 | 10 |
一个 | 1 | 10 |
一个 | 3 | 10 |
乙 | 2 | 10 |
乙 | 2 | 10 |
我想分组到这个数据框中,显示每周的数量,包括当 Qty = 0 时。如何做到这一点?谢谢你。
产品 | 星期 | 数量 |
---|---|---|
一个 | 1 | 20 |
一个 | 2 | 0 |
一个 | 3 | 10 |
乙 | 1 | 0 |
乙 | 2 | 20 |
乙 | 3 | 0 |
解决方案
#Groupby and sum
df1=df.groupby(['Product','Week'])['Qty'].sum().to_frame()
#reindex, multiindex
df1.reindex( pd.MultiIndex.from_product([df1.index.levels[0],
df['Week'].unique()], names=['Product', 'Week']),fill_value=0).reset_index()
Product Week Qty
0 A 1 20
1 A 3 10
2 A 2 0
3 B 1 0
4 B 3 0
5 B 2 20
推荐阅读
- java - Java Streams:使用不同对象类型的多个列表创建地图
- autodesk-forge - 在 Forge 查看器中设置图层可见性
- python - 为什么 selenium 在我的浏览器上不起作用?
- android - 量角器 - 在这里使用什么预期条件?
- java - java 8流嵌套列表以查找值存在
- angular - Angular Reactive Forms - 提交二维数组的表单
- c++ - 我需要对 QM 文件做些什么才能让我的 QT 应用程序看到它们吗?
- parallel-processing - 如何使用 OMP 任务和递归任务工作负载测量 OMP 时间?
- powershell - Powershell copy-item 创建一个文件夹而不是复制文件
- r - 计算R中数据框列表的列的平均值?