【发布时间】:2020-12-19 18:50:07
【问题描述】:
例子df:
df = pd.DataFrame({
'group': ['a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'b',],
'value': ['yes', 'yes', 'yes', 'no', 'no', 'yes', 'no', 'no', 'no']
})
我需要计算组中的每个值并得到如下结果:
group yes no
a 3 2
b 1 3
我试过df.groupby(['group', 'value'])['value'].count().to_frame(),它看起来不错,但是多索引,我需要像上面例子这样的简单表格
【问题讨论】:
-
使用
pd.crosstab(df['group'], df['value']) -
通过添加 unstack 和一些格式来修复您的代码:
df.groupby(['group', 'value'])['value'].count().unstack().rename_axis(None,axis=1).reset_index()
标签: python pandas group-by pandas-groupby