使用此代码:
import pandas
df = pandas.DataFrame()
df['id'] = list('aaabbbcccdddeee')
df['gender'] = list('mmfmfmmffmfmfff')
我得到一个像DataFrame:
id gender
0 a m
1 a m
2 a f
3 b m
4 b f
5 b m
6 c m
7 c f
8 c f
9 d m
10 d f
11 d m
12 e f
13 e f
14 e f
如何按df
分割id
,然后计算每个类别中m
和f
的数量,以便我可以得到如下结果:
m f
a 2 1
b 2 1
c 1 2
d 2 1
e 0 3
答案 0 :(得分:0)
您可以pd.pivot_table
使用len
:
res = df.pivot_table(index='id', columns='gender',
aggfunc=len, fill_value=0)
print(res)
gender f m
id
a 1 2
b 1 2
c 2 1
d 1 2
e 3 0