2017-10-06 2 views
0

두 DataFrame 열의 차이점을 확인하고 싶습니다.두 팬더 데이터 프레임 간의 차이점을 찾는 방법

array([], dtype=object) 

그러나 dataframes 열 수가 다르다 : 빈 배열 결과

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

: I 명령을 사용하여 시도

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

것을 의미 어느 두 개의 DataFrame이 분명히 다릅니다.

무엇이 잘못 되었나요?

+0

'np.setdiff1d'는 차이가 설정됩니다


당신이 두 가지의 차이를 확인하기 위해 필요한 setdiff1d를 사용하려면

. 의미는 첫 번째 인수에서 두 번째 인수에없는 항목을 찾습니다. 빈 배열을 반환하면'train.columns'에없는 train.columns에는 아무것도 없다는 것을 의미합니다. – piRSquared

답변

1

결과는 정확하지만 setdiff1d은 순서에 따라 다릅니다. 첫 번째 입력 배열에서 두 번째 배열에없는 요소 만 검사합니다.

고유 한 열이있는 데이터 프레임을 신경 쓰지 않는다면 setxor1d을 사용할 수 있습니다. "입력 배열 중 하나 (둘 다 아닌)에있는 고유 값"을 반환합니다 (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) 
관련 문제