如何对数据框元素求和和分组?

时间:2015-11-25 16:44:20

标签: python pandas

+-----+-------+--------+
|     | Buyer |  Sex   |
+-----+-------+--------+
| 0   | 1     | Male   |
| 1   | 1     | Female |
| 2   | 0     | Male   |
| 3   | 1     | Female |
| ... | ...   | ...    |
+-----+-------+--------+

我想将上面的数据框汇总并分组到下面的数据框(表格)中。 pandas有没有可以完成此任务的内置函数,还是我必须手动迭代,求和和分组?

+---+---------+------+
|   | Female  | Male |
+---+---------+------+
| 0 |      81 |  392 |
| 1 |     539 |  233 |
+---+---------+------+

2 个答案:

答案 0 :(得分:1)

使用pivot_table'count'作为您的aggfunc。 此外,考虑到可能存在一些从未找到的组合,请使用fillna以0:

填充空单元格
In [28]:
df['V'] = 1
print df
   Buyer     Sex  V
0      1    Male  1
1      1  Female  1
2      0    Male  1
3      1  Female  1
In [29]:
print df.pivot_table(index='Buyer', columns='Sex', values='V', aggfunc='count').fillna(0)
Sex    Female  Male
Buyer              
0           0     1
1           2     1

答案 1 :(得分:0)

frame.groupby('Sex').aggregate(some_function) 

应该有效。 甚至在你的情况下:

frame.groupby('Sex').sum()