我有一个大型数据框。我想在数据帧中对三列进行分组,然后将函数应用于每个组。但是,我也对一些不在数据框中的组和密钥感兴趣。如何将这些添加到groupby对象中,因此我可以在所有组上统一使用groupby.apply()
?
答案 0 :(得分:4)
我想我可能会在事后重新索引:
In [11]: df = pd.DataFrame([[1, 2, 3], [2, 1, 6], [2, 2, 9]], columns=['A', 'B', 'C'])
In [12]: s = df.groupby(['A', 'B']).sum()
In [13]: s
Out[13]:
C
A B
1 2 3
2 1 6
2 9
例如,这里s没有(1,1)的结果。我们可以使用MultiIndex.from_product
提供“总计”索引(或者,如果您单独使用,则输入该数据):
In [14]: m = pd.MultiIndex.from_product([[1, 2], [1, 2]], names=['A', 'B'])
In [15]: s.reindex(m)
Out[15]:
C
A B
1 1 NaN
2 3
2 1 6
2 9