gpt4 book ai didi

python - Pandas Merge - 基于键引入相同的列值

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

我有 3 个这样的数据框,

df = pd.DataFrame([[1, 3], [2, 4], [3,6], [4,12], [5,18]], columns=['A', 'B'])
df2 = pd.DataFrame([[1, 5], [2, 6], [3,9]], columns=['A', 'C'])
df3 = pd.DataFrame([[4, 15, "hello"], [5, 19, "yes"]], columns=['A', 'C', 'D'])

他们看起来像这样,df

    A   B
0 1 3
1 2 4
2 3 6
3 4 12
4 5 18

df2

    A   C
0 1 5
1 2 6
2 3 9

df3

   A    C   D
0 4 15 hello
1 5 19 yes

我的合并,第一次合并,

f_merge = pd.merge(df, df2, on='A',how='left')

第二次合并,(first_mergedf3)

s_merge = pd.merge(f_merge, df3, on='A', how='left')

我得到这样的输出,

    A   B   C_x  C_y       D
0 1 3 5.0 NaN NaN
1 2 4 6.0 NaN NaN
2 3 6 9.0 NaN NaN
3 4 12 NaN 15.0 hello
4 5 18 NaN 19.0 yes

我需要这样,

    A   B   C        D
0 1 3 5.0 NaN
1 2 4 6.0 NaN
2 3 6 9.0 NaN
3 4 12 15.0 hello
4 5 18 19.0 yes

我怎样才能实现这个输出?任何建议都会很棒。

最佳答案

合并前连接 df2 和 df3。

new_df = pd.merge(df, pd.concat([df2, df3], ignore_index=True), on='A')

new_df

Out:
A B C D
0 1 3 5 NaN
1 2 4 6 NaN
2 3 6 9 NaN
3 4 12 15 hello
4 5 18 19 yes

关于python - Pandas Merge - 基于键引入相同的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58378970/

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