我有一个 pandas 数据框,看起来像这样:
id group gender age_grp status
1 1 m over21 active
2 4 m under21 active
3 2 f over21 inactive
我有超过 100 列和数千行。我正在尝试创建每个列的 value_counts 的单个 pandas 数据框。所以我想要看起来像这样的东西:
group1
gender m 100
f 89
age over21 98
under21 11
status active 87
inactive 42
有人知道一种简单的方法,我可以迭代地连接原始数据集中 100 多个列中每一列的 value_counts,同时捕获列的名称作为分层索引吗?
最终我希望能够与不同组的另一个数据框合并,如下所示:
group1 group2
gender m 100 75
f 89 92
age over21 98 71
under21 11 22
status active 87 44
inactive 42 13
谢谢!
最佳答案
这应该可以做到:
df.stack().groupby(level=1).value_counts()
id 1 1
2 1
3 1
group 1 1
2 1
4 1
gender m 2
f 1
age_grp over21 2
under21 1
status active 2
inactive 1
dtype: int64
关于python - 迭代捕获单个数据帧中的值计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38406897/