Python:具有各自计数的透视表?
我有一个Python:具有各自计数的透视表?,python,pandas,pivot-table,Python,Pandas,Pivot Table,我有一个df,上面写着主人的名字、宠物的名字、性别以及是否接种了疫苗。 我想使用数据透视表来获取每个计数 owner pet vacine Gender 0 john dog True M 1 tom dog False F 2 robert cat
df
,上面写着主人的名字、宠物的名字、性别以及是否接种了疫苗。
我想使用数据透视表来获取每个计数
owner pet vacine Gender
0 john dog True M
1 tom dog False F
2 robert cat False F
3 joseph dog True F
4 mary bird False F
5 lily cat True M
我的结果df将类似于这样
pet Total vacine Gender(Male)
0 dog 3 2 1
1 cat 2 1 1
2 bird 1 0 0
'Total'
将显示pet
列中的宠物总数。
'Gender'
会在'Gender'一栏中显示男性。以下是一种方法:
df.groupby('pet').agg(
vacine = ('vacine', 'sum'),
Total = ('pet', 'size'),
Gender = ('Gender', lambda x: sum(x == 'M'))
).reset_index()
pet vacine Total Gender
0 bird 0.0 1 0
1 cat 1.0 2 1
2 dog 2.0 3 1
我不知道你如何处理性别栏,这里有两个选择
df.groupby(['pet']).agg({'vacine': 'sum', 'Gender': lambda x: sum(x == 'M'), 'pet': 'count'})
vacine Gender pet
pet
bird 0.0 0 1
cat 1.0 1 2
dog 2.0 1 3
为什么狗的性别是1?有两个F和一个M
df.groupby(['pet']).agg({'vacine': 'sum', 'Gender': 'unique', 'pet': 'count'})
vacine Gender pet
pet
bird 0.0 [F] 1
cat 1.0 [F, M] 2
dog 2.0 [M, F] 3