gpt4 book ai didi

python - 如何比较具有相同列但行数不同的两个数据框?

转载 作者:太空宇宙 更新时间:2023-11-03 23:56:36 24 4
gpt4 key购买 nike

df1=

  A   B  C  D

a1 b1 c1 1

a2 b2 c2 2

a3 b3 c3 4

df2=

  A   B  C  D

a1 b1 c1 2

a2 b2 c2 1

我想比较两个数据框中“D”列的值。如果两个数据帧的行数相同,我就会这样做。

newDF = df1['D']-df2['D']

但是有时行数不同。我想要一个显示这样的数据框的结果数据框。

resultDF=

  A   B  C  D_df1 D_df2  Diff

a1 b1 c1 1 2 -1

a2 b2 c2 2 1 1

编辑:如果来自 df1 和 df2 的 A、B、C 中的第一行相同,则只有比较每个数据帧的 D 列的第一行。同样,对所有行重复。

最佳答案

使用mergedf.eval

df1.merge(df2, on=['A','B','C'], suffixes=['_df1','_df2']).eval('Diff=D_df1 - D_df2')

Out[314]:
A B C D_df1 D_df2 Diff
0 a1 b1 c1 1 2 -1
1 a2 b2 c2 2 1 1

关于python - 如何比较具有相同列但行数不同的两个数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57469558/

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