python - 按 Pandas 列总和的值分组

标签 python group-by pandas dataframe

我迷失在 Pandas 文档和功能中,试图找出一种方法,通过列的总和值来groupby DataFrame

例如,假设我有以下数据:

In [2]: dat = {'a':[1,0,0], 'b':[0,1,0], 'c':[1,0,0], 'd':[2,3,4]}

In [3]: df = pd.DataFrame(dat)

In [4]: df
Out[4]: 
   a  b  c  d
0  1  0  1  2
1  0  1  0  3
2  0  0  0  4

我希望将列 abc 分组,因为它们的总和都等于 1。生成的 DataFrame 将列标签等于它求和的列的总和。像这样:

   1  9
0  2  2
1  1  3
2  0  4

有什么想法可以让我朝着好的方向发展吗?提前致谢!

最佳答案

给你:

In [57]: df.groupby(df.sum(), axis=1).sum()
Out[57]: 
   1  9
0  2  2
1  1  3
2  0  4

[3 rows x 2 columns]

df.sum() 是您的石斑鱼。它在 0 轴(索引)上求和,为您提供两组:1(列 ab c) 和 9(d 列)。您想要对列 (axis=1) 进行分组,并计算每组的总和。

关于python - 按 Pandas 列总和的值分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21584434/

相关文章:

python - 使用python从BytesIO创建一个excel文件

Python Scapy --arp 请求和响应

Python - 将文本文件保留在一行中?

python - 请求.exceptions.SSLError : [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl. c:600)

mysql - 使用 MySQL 案例条件在使用计数和分组依据的查询中创建列

python-2.7 - Pandas 将列表附加到列名列表

python - 我如何将点击工具与条形图 -bokeh 一起使用

sql - rails/SQL : Group by and sum each day in the last 2 weeks

MySQL 选择顶行按另一行分组

python - 在 pandas 的列中获取具有相同值的行