Pandas .groupby():聚合包括分组变量

时间:2016-04-20 16:53:56

标签: python python-2.7 pandas

我的数据:

a_1, a_2, b_1, b_2, ...
0,   0,   1,   0,  ...
1,   0,   0,   1,  ...
1,   1,   1,   0,  ...
0,   1,   0,   0,  ...
etc...

我想对每列的所有行求和,循环遍历if a_1 == 1然后if b_1 == 1然后if c_1 == 1等。

现在我有testDict = {k : df[df[k + '_1']==1].groupby(k + '_1').sum() for k in letters}

然而,这除了我正在分组的列之外的所有列...我也想要总和。有什么想法或建议吗?

输出应如下所示:

testDict['a'] : 
a_1, a_2, b_1, b_2,  ...
2,   1,   1,   1, ...

testDict['b'] :
a_1, a_2, b_1, b_2,  ...
1,   1,   2,   0,  ....

谢谢。

1 个答案:

答案 0 :(得分:0)

哦,哎呀,我完全错过了这个。我可以使用testDict = {k : df[df[k + '_1']==1].sum() for k in letters}而没有groupby! durrrr。

我最终使用testDict = {k : pd.DataFrame(df[df[k + '_1']==1].sum()).transpose() for k in letters}来维护水平布局(.sum()创建了垂直布局)