gpt4 book ai didi

python - 使用多列连接 Pandas 数据框

转载 作者:行者123 更新时间:2023-11-28 22:08:05 26 4
gpt4 key购买 nike

我正在使用多列进行数据框外连接:

DF1:

ColumnA ColumnB ColumnC ColumnD
1 2 3 4
1 2 3 4

DF2:

ColumnE ColumnF ColumnG ColumnH
1 2 3 4
1 2 3 4

合并代码:

df= pd.merge(DF1, DF2, left_on=['ColumnA','ColumnB','ColumnC','ColumnD'], right_on=['ColumnE','ColumnF','ColumnG','ColumnH'], how='outer')

实际结果:

ColumnA ColumnB ColumnC ColumnD ColumnE ColumnF ColumnG ColumnH
1 2 3 4 1 2 3 4
1 2 3 4 1 2 3 4
1 2 3 4 1 2 3 4
1 2 3 4 1 2 3 4

预期结果(值应该只显示两次,因为列的组合在两个数据集中完全匹配):

ColumnA ColumnB ColumnC ColumnD ColumnE ColumnF ColumnG ColumnH
1 2 3 4 1 2 3 4
1 2 3 4 1 2 3 4

有人可以告诉我哪里出错了吗?

最佳答案

您在 df1df2 上都有相同的重复项,因此合并后的 df 每个重复项的行数都翻了一番。简单的解决方案是通过 drop_duplicatesmerge

保持一个数据帧唯一
df = pd.merge(df1.drop_duplicates(), df2, left_on=['ColumnA','ColumnB' ,'ColumnC','ColumnD'], right_on=['ColumnE','ColumnF','ColumnG','ColumnH'], how='outer')

Out[742]:
ColumnA ColumnB ColumnC ColumnD ColumnE ColumnF ColumnG ColumnH
0 1 2 3 4 1 2 3 4
1 1 2 3 4 1 2 3 4

关于python - 使用多列连接 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58925141/

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