gpt4 book ai didi

python - Pandas 数据框中重复列的平均值

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

我有一个数据框,其中包含重复的列名,这些重复的测量值。

df = pd.DataFrame({'A': randn(5), 'B': randn(5)})
df2 = pd.DataFrame({'A': randn(5), 'B': randn(5)})
df3 = pd.concat([df,df2], axis=1)
df3
A B A B
0 -0.875884 -0.298203 0.877414 1.282025
1 1.605602 -0.127038 -0.286237 0.572269
2 1.349540 -0.067487 0.126440 1.063988
3 -0.142809 1.282968 0.941925 -1.593592
4 -0.630353 1.888605 -1.176436 -1.623352

我想取 cols 'A's 和 'B's 的平均值,使数据框缩小到

      A         B    
0 0.000765 0.491911
1 0.659682 0.222616
2 0.737990 0.498251
3 0.399558 -0.155312
4 -0.903395 0.132627

如果我做典型的

df3['A'].mean(axis=1)

我得到一个系列(没有列名),然后我应该用每个列组的方法构建一个新的数据框。此外 .groupby() 方法显然不允许您按列名分组,而是您提供列并对索引进行排序。有什么奇特的方法可以做到这一点吗?

附带问题:为什么

df = pd.DataFrame({'A': randn(5), 'B': randn(5), 'A': randn(5), 'B': randn(5)})

不生成 4 列数据框但合并同名列?

最佳答案

您可以使用 level 关键字(将您的列视为索引的第一级(级别 0),在这种情况下只有一个级别):

In [11]: df3
Out[11]:
A B A B
0 -0.367326 -0.422332 2.379907 1.502237
1 -1.060848 0.083976 0.619213 -0.303383
2 0.805418 -0.109793 0.257343 0.186462
3 2.419282 -0.452402 0.702167 0.216165
4 -0.464248 -0.980507 0.823302 0.900429

In [12]: df3.mean(axis=1, level=0)
Out[12]:
A B
0 1.006291 0.539952
1 -0.220818 -0.109704
2 0.531380 0.038334
3 1.560725 -0.118118
4 0.179527 -0.040039

关于python - Pandas 数据框中重复列的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23826725/

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