gpt4 book ai didi

python - Pandas Groupby 在不同轴上使用多个标准

转载 作者:行者123 更新时间:2023-11-28 19:34:55 25 4
gpt4 key购买 nike

我有一个 df 数据框,例如:

      | A | B | A_ | B_ |COMMON|
--------------------------------
0 | 1 | 3 | 0 | 1 | a |
--------------------------------
1 | 8 | 5 | 4 | 0 | a |
--------------------------------
2 | 3 | 6 | 2 | 4 | b |
--------------------------------
3 | 9 | 9 | 1 | 7 | b |

我想将所有列 X 与所有字母 A,B,...X_ 分组(比方说,组也称为 X),并使用 COMMON 进行分组。我想将 std() 之类的稍后函数应用于所有分组值。

所以结果看起来像:

COMMON  |  A     |  B     |
---------------------------
a |std(...)|std(...)|
---------------------------
b |std(...)|std(...)|

我已经能够对一个或另一个进行分组,使用 df.groupby(['COMMMON']) 作为一个标准,并使用 .groupby(mapping_function, axis=1) 用于另一个,但我如何将它们一起使用?

中间步骤的另一种替代方法是连接各个列,这样我会得到:

      | A | B |COMMON|
----------------------
0 | 1 | 3 |a |
---------------------
1 | 8 | 5 |a |
---------------------
2 | 3 | 6 |b |
---------------------
3 | 9 | 9 |b |
---------------------
0 | 0 | 1 |a |
---------------------
1 | 4 | 0 |a |
---------------------
2 | 2 | 4 |b |
---------------------
3 | 1 | 7 |b |

但我也不知道该怎么做。同样如您所见,我并不真正关心索引。

感谢您的帮助!

最佳答案

您可以先通过 melt 进行整形使用 pivot_table 从列名中删除 _(为了更好的性能,因为 strip 只有几个值) :

df = (df.rename(columns=lambda x: x.strip('_'))
.melt('COMMON')
.pivot_table(index='COMMON',columns='variable', values='value', aggfunc='std'))

print (df)
variable A B
COMMON
a 3.593976 2.217356
b 3.593976 2.081666

关于python - Pandas Groupby 在不同轴上使用多个标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53264153/

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