gpt4 book ai didi

python - 左数据框与不同列中的匹配键合并

转载 作者:行者123 更新时间:2023-12-04 03:47:24 26 4
gpt4 key购买 nike

我必须将两个 DataFrame 与左连接合并 - 如下图所示。

问题是匹配键分布在 3 列中。为了使挑战更加复杂,一些行(#4)将有两次相同的匹配键!我被建议使用 Melt,但它只适用于 Right Join。

什么是最好的方法?

将 pandas 导入为 pd

data1 = {'key1' : ['abc','aa','aa','sdf'],
'key2' : ['aa','efg','aa', 'sdf'],
'key3' : ['aa','aa','xyz', 'aa']
}

data2 = {'key': ['abc','efg', 'xyz', 'sdf'],
'msg' : ['happy','mad','smile','great']}

df1= pd.DataFrame(data1)
df2= pd.DataFrame(data2)

enter image description here

最佳答案

让我们尝试堆栈 reshape df1然后映射键与来自df2的相应msg ,最后在 level=0groupby 并使用 first 聚合:

df1['msg'] = df1.stack().map(df2.set_index('key')['msg']).groupby(level=0).first()

  key1 key2 key3    msg
0 abc aa aa happy
1 aa efg aa mad
2 aa aa xyz smile
3 sdf sdf aa great

关于python - 左数据框与不同列中的匹配键合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64943817/

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