Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 具有多个列和字符串的Diff 2数据帧仅输出差异_Python_Python 3.x_Pandas_Dataframe - Fatal编程技术网

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
vs
1383
,在下面的示例中)?并且只输出有差异的行

示例数据:

> 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我尝试过了,效果很好,除了一个角落的情况下,你有较长的左或右重复行,然后这将下降他们太多。