繁体   English   中英

如何找到两个熊猫数据框之间的设置差异

[英]How to find the set difference between two Pandas DataFrames

我想检查两个DataFrame列之间的区别。 我尝试使用以下命令:

np.setdiff1d(train.columns, train_1.columns)

这将导致一个空数组:

array([], dtype=object)

但是,数据框中的列数是不同的:

len(train.columns), len(train_1.columns) = (51, 56)

这意味着两个DataFrame明显不同。

怎么了

结果是正确的,但是setdiff1d与顺序有关。 它将仅检查第二个数组中未出现的第一个输入数组中的元素。

如果您不关心哪个数据setxor1d具有唯一列,则可以使用setxor1d 它将返回“仅在输入数组之一(不是两个)中的唯一值”,请参阅文档

import numpy

colsA = ['a', 'b', 'c', 'd']
colsB = ['b','c']

c = numpy.setxor1d(colsA, colsB)

将返回一个包含“ a”和“ d”的数组。


如果要使用setdiff1d ,则需要两种方式检查差异:

//columns in train.columns that are not in train_1.columns
c1 = np.setdiff1d(train.columns, train_1.columns)

//columns in train_1.columns that are not in train.columns
c2 = np.setdiff1d(train_1.columns, train.columns)

用这样的东西

data_3 = data1[~data1.isin(data2)]

其中data1和data2是列,而data_3 = data_1-data_2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM