我有以下 Pandas DataFrame:
ID CAT
1 A
1 B
1 A
2 A
2 B
2 A
1 B
1 A
我想要一个表格来指示不同列中每个 ID 的每个 CAT 值的出现次数,如下所示:
ID CAT_A_NUM CAT_B_NUM
1 3 2
2 2 1
我尝试了很多方法,例如使用数据透视表的方法,但没有成功:
df.pivot_table(values='CAT', index='ID', columns='CAT', aggfunc='count')
最佳答案
您可以使用crosstab() :
df=pd.DataFrame(data={'ID':[1,1,1,2,2,2,1,1],'CAT':['A','B','A','A','B','A','B','A']})
final = pd.crosstab(df['ID'], df['CAT'])
final.columns=['CAT_A_NUM','CAT_B_NUM']
final
ID CAT_A_NUM CAT_B_NUM
1 3 2
2 2 1
关于pandas - 如何指示 Pandas、Python 中分类列中值的计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74403721/