gpt4 book ai didi

python - 加入/合并具有相同列名的数据框的微妙问题

转载 作者:行者123 更新时间:2023-12-01 09:12:21 26 4
gpt4 key购买 nike

所以我有一组主要数据,如下所示:

value_num   code    value_letter
1 CDX A
2 DEF B
3 RPQ C
4 EEE D
5 FFX E
6 TRE F

还有另外两个表,我们称之为map1和map2

song    album_code  song_code
Song1 CDX GIB
Song2 DEF FRE
Song3 RPQ SSS

song album_code song_code
Song4 REA EEE
Song5 VEY FFX
Song6 LFM TRE

我想将主表与map1连接,其中album_code在代码上连接。然后我想将map2加入到这个新表上,其中song_code在代码上加入。

理想情况下,最终结果如下所示:

value_num   code    value_letter    song    album_code  song_code
1 CDX A Song1 CDX GIB
2 DEF B Song2 DEF FRE
3 RPQ C Song3 RPQ SSS
4 EEE D Song4 REA EEE
5 FFX E Song5 VEY FFX
6 TRE F Song6 LFM TRE

相反,输出总共有 9 个列名称:value_num、code、value_letter、song_x、album_code_x、song_code_x、song_y、album_code_y 和 Song_code_y。 map1 中的值位于 x 列下方,song2 值位于 y 列下方。

我尝试了几种不同的合并和连接方法。我不在乎该解决方案是否是一个复杂的解决方法,但它不能是该数据的重新格式化。

最佳答案

使用combine_first进行两次合并

r1=df.merge(df1,left_on='code',right_on='album_code',how='left')
r2=df.merge(df2,left_on='code',right_on='song_code',how='left')
r1.combine_first(r2)
Out[547]:
value_num code value_letter song album_code song_code
0 1 CDX A Song1 CDX GIB
1 2 DEF B Song2 DEF FRE
2 3 RPQ C Song3 RPQ SSS
3 4 EEE D Song4 REA EEE
4 5 FFX E Song5 VEY FFX
5 6 TRE F Song6 LFM TRE

关于python - 加入/合并具有相同列名的数据框的微妙问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51550255/

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