使用Pandas数据框按列计算组值

时间:2018-09-23 22:15:49

标签: python pandas dataframe pandas-groupby

我不太确定该怎么问,因此如果这是重复的问题,我深表歉意。我有一个看起来像这样的数据框:

| ID | Attend_x | Attend_y | Attend_z | | 1 | No | No | No | | 2 | No | No | Yes | | 3 | No | Yes | No | | 4 | No | Yes | Yes |

我一直在尝试找出group_by的正确组合,并计数以使其看起来像这样:

| | Yes | No | |Attend_x| 0 | 4 | |Attend_y| 2 | 2 | |Attend_z| 2 | 2 |

老实说,我很沮丧。因此,任何建议都将受到高度赞赏。谢谢!

1 个答案:

答案 0 :(得分:3)

value_counts

的一种方式
df.iloc[:,1:].apply(pd.Series.value_counts).fillna(0).T
Out[184]: 
           No  Yes
Attend_x  4.0  0.0
Attend_y  2.0  2.0
Attend_z  2.0  2.0

或在crosstab之后使用melt

m = df.iloc[:,1:].melt()
pd.crosstab(m.variable, m.value)

value     No  Yes
variable         
Attend_x   4    0
Attend_y   2    2
Attend_z   2    2