首页 > 解决方案 > 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

标签: pythonpandas

解决方案


#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

推荐阅读