pandas - 如何指示 Pandas、Python 中分类列中值的计数?

标签 pandas pivot aggregation

我有以下 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/

相关文章:

apache-spark - Spark pivot groupby 性能很慢

Laravel - 如何查询数据透视表上的关系

mysql - 如何从关于 2 个表的查询构建数据透视表

mysql - 如何在 mySQL 中排除行对的聚合?

python - 在 pandas 中使用 .groupby() 时如何输出 groupby 变量?

python - pandas.DataFrame.rolling 不适用于巨大的花车

pandas - 基于整数索引拆分数据框

python - 依赖于两列的三元表达式

elasticsearch按多个字段聚合

kendo-ui - Kendo 网格 - 单行中的汇总字段