+-----+-------+--------+
| | Buyer | Sex |
+-----+-------+--------+
| 0 | 1 | Male |
| 1 | 1 | Female |
| 2 | 0 | Male |
| 3 | 1 | Female |
| ... | ... | ... |
+-----+-------+--------+
我想将上面的数据框汇总并分组到下面的数据框(表格)中。 pandas有没有可以完成此任务的内置函数,还是我必须手动迭代,求和和分组?
+---+---------+------+
| | Female | Male |
+---+---------+------+
| 0 | 81 | 392 |
| 1 | 539 | 233 |
+---+---------+------+
答案 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()