gpt4 book ai didi

python - 具有相同列名的内部合并数据框并应用聚合函数

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

我想内部合并两个数据帧,它们都有一些同名的列。在具有相同名称的列上,我不希望在合并的数据框中有一个带有后缀的新列,而是想将它们组合在一起并应用聚合函数(在本例中为求和)

有:

d1:

      col1
0 1
1 2

d2:

      col1
0 3
2 5

使用 pd.merge(d1, d2, how='inner', left_index=True, right_index=True)

得到:

     col1_x   col1_y
0 1 3

但想要:

      col1
0 4

最佳答案

使用:

print (d1)
col1 col3
0 1 6
1 2 3
print (d2)
col1 col2
0 3 2
2 5 4

您的解决方案 - 添加 groupby通过拆分列名称和聚合 sum:

df = pd.merge(d1, d2, how='inner', left_index=True, right_index=True)

df = df.groupby(lambda x: x.split('_')[0], axis=1).sum()
#alternative
#df = df.groupby(df.columns.str.split('_').str[0], axis=1).sum()

这里可以更简单地使用 concat通过 join='inner'sum 按列:

df = pd.concat([d1, d2], axis=1, join='inner').sum(level=0, axis=1)
print (df)
col1 col3 col2
0 4 6 2

关于python - 具有相同列名的内部合并数据框并应用聚合函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54376595/

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