2017-10-06 11 views
0

2つのDataFrame列の違いを確認したいと思います。2台のPandas DataFrames間の差異を見つける方法

array([], dtype=object) 

しかし、データフレーム内の列数が異なっている:空の配列になる

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

:私はコマンドを使用してみました

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

ことを意味します2つのDataFrameは明らかに異なります。

ここで何が間違っていますか?

+0

'np.setdiff1d'は差が設定されます。


あなたは両方の方法の違いを確認するために必要なsetdiff1dを使用したい場合

。これは、第1引数の中で第2引数にないものを見つけることを意味します。空の配列が返ってくると、train.columnsにはtrain1.columnsにないものは何もないことを意味します。 – piRSquared

答えて

1

結果は正しいですが、setdiff1dは順序に依存します。第1の入力配列内の第2の配列内に存在しない要素をチェックするだけである。

ユニークな列を持つデータフレームを気にしない場合は、setxor1dを使用できます。 「入力配列のうちの1つにのみ存在する一意の値」を返します。documentationを参照してください。

import numpy 

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

c = numpy.setxor1d(colsA, colsB) 

「a」と「d」を含む配列を返します。

//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) 
関連する問題