Python 具有多个列和字符串的Diff 2数据帧仅输出差异
是否有一种方法可以比较具有多列且长度不同的两个数据帧(Python 具有多个列和字符串的Diff 2数据帧仅输出差异,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,是否有一种方法可以比较具有多列且长度不同的两个数据帧(1386vs1383,在下面的示例中)?并且只输出有差异的行 示例数据: > df_left index location date 0 0 Adelaide 2019-01-01 1 1 Adelaide 2019-02-01 2 2 Adelaide 2019-
1386
vs1383
,在下面的示例中)?并且只输出有差异的行
示例数据:
> df_left
index location date
0 0 Adelaide 2019-01-01
1 1 Adelaide 2019-02-01
2 2 Adelaide 2019-03-01
3 3 Adelaide 2019-04-01
4 4 Adelaide 2019-05-01
... ... ... ...
1381 1381 Western London 2019-03-01
1382 1382 Western London 2019-04-01
1383 1383 Western London 2019-05-01
1384 1384 Western London 2019-06-01
1385 1385 Western London 2019-07-01
[1386 rows x 2 columns]
> df_right
location date
0 Adelaid 2019-01-01
1 Adelaide 2019-02-01
2 Adelaide 2019-03-01
3 Adelaide 2019-04-01
4 Adelaide 2019-05-01
... ... ...
1378 Western London 2019-03-01
1379 Western London 2019-04-01
1380 Western London 2019-05-01
1381 Western London 2019-06-01
1382 Western London 2019-07-01
[1383 rows x 2 columns]
我尝试过这个,但没有产生差异
pd.concat([df_left_with_index_columns,df_right_with_index_columns], ignore_index=True, axis=1, join="outer")
0 1 2 3
0 Adelaide 2019-01-01 Adelaide 2019-01-01
1 Adelaide 2019-02-01 Adelaide 2019-02-01
2 Adelaide 2019-03-01 Adelaide 2019-03-01
3 Adelaide 2019-04-01 Adelaide 2019-04-01
4 Adelaide 2019-05-01 Adelaide 2019-05-01
... ... ... ... ...
1381 Western London 2019-03-01 Western London 2019-06-01
1382 Western London 2019-04-01 Western London 2019-07-01
1383 Western London 2019-05-01 NaN NaT
1384 Western London 2019-06-01 NaN NaT
1385 Western London 2019-07-01 NaN NaT
[1386 rows x 4 columns]
这对你有帮助吗?第一部分展示了如何获得行相等的布尔数组。@WolfgangK我试过,但是出现了错误
ValueError:只能比较标签相同的数据帧对象
连接两个数据帧并删除重复项怎么样?@mayelsgc如果两个重复项组合在两个列上,可能会起作用。@mayelsgc我尝试过了,效果很好,除了一个角落的情况下,你有较长的左或右重复行,然后这将下降他们太多。