提问人:Est 提问时间:5/7/2023 更新时间:5/7/2023 访问量:44
使用 Python 比较两个数据帧
Compare two dataframes using Python
问:
我有两个数据帧,每个数据帧都有三列具有相同的列名。我想根据第一列将两个数据帧的值放在一起来比较它们。
我尝试使用外部连接、左连接甚至内部连接。输出实际上是相同的,也是正确的。但是我只希望第二列和第三列的值(并排)列出,如果第一列匹配。使用 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)
答:
1赞
shabnam aboulghasem
5/7/2023
#1
一种方法是将基于水果组的另一列添加到数据帧中,然后根据 fruit 和新列进行合并,代码如下所示:
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'))
评论