gpt4 book ai didi

python - Pandas - 将每一列单独分组

转载 作者:太空宇宙 更新时间:2023-11-04 02:59:48 25 4
gpt4 key购买 nike

这是我的数据框:

    col1  col2  col3  col4  
0 True False True True
1 True True False False
2 False False True False
3 True True False True

有没有一种方法可以对我的数据进行分组,以便我得到类似下面的内容,其中表中的数字是出现次数:

       col2         col3        col4  
True False True False True False
col1
True 2 1 x x x x
False 0 1 x x x x

非常感谢您的帮助!

最佳答案

设置col1为索引轴。执行堆栈操作以将其 reshape 为长格式的系列对象。

Groupby 多索引系列的第 0 级和第 1 级生成并计算它们各自的值计数。然后,unstack 并按行和列对索引进行排序,可选地用 0 填充 NaNs

(df.set_index('col1').stack().groupby(level=[0,1]).value_counts().unstack(level=[1,2])
.sort_index(ascending=False, axis=1).sort_index(ascending=False).fillna(0).astype(int))

enter image description here

根据@jezrael 的评论进一步简化的解决方案:

(df.set_index('col1').stack().groupby(level=[0,1]).value_counts()
.sort_index(ascending=[False, True, False]).unstack([1,2]).fillna(0).astype(int))

enter image description here

此外,您可以按降序对索引轴进行排序以获得所需的 o/p。

关于python - Pandas - 将每一列单独分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41278156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com