簡體   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