使用 Python 比较两个数据帧

问题描述 投票:0回答:1

我有两个数据框,每个数据框都有三列,列名相同。我想通过根据第一列将它们放在一起来比较两个数据框的值。

我试过使用外连接、左连接甚至内连接。输出实际上是相同的,也是正确的。但我只希望在第一列匹配时(并排)列出第二列和第三列的值。使用 join 方法会导致重复。附图是我得到的输出,也是我的目标输出。

# Merge the two tables on column A
merged_table = pd.merge(dfA, dfB, on='Fruit', how='outer', suffixes=('_from dfA', '_from dfB'))

# Sort the merged table by column B
merged_table = merged_table.sort_values('Date_from dfA')

# Display the output
print(merged_table)

python list merge compare match
1个回答
0
投票

这样做的一种方法是将基于水果组的另一列添加到数据框中,然后基于水果和新列进行合并,代码如下所示:

    dfA=dfA.assign(num=(dfA.groupby(['Fruit']).cumcount()+1))
    dfB=dfB.assign(num=(dfB.groupby(['Fruit']).cumcount()+1))

    merged_table = pd.merge(dfA, dfB, on=['Fruit','num'], how='outer', suffixes=('_from dfA', '_from dfB'))
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.