我不太确定该怎么问,因此如果这是重复的问题,我深表歉意。我有一个看起来像这样的数据框:
| 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 |
老实说,我很沮丧。因此,任何建议都将受到高度赞赏。谢谢!
答案 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