2014-12-20 3 views
0

두 데이터 프레임 df1, df2을 가지고 있습니다.이 데이터 프레임을 새로운 데이터 프레임 df에 결합하고 싶습니다. 같은 df 보이도록 내가이 행을 제거하는 방법팬더의 DataFrame에서 모든 NaN이있는 행 제거

>>> from pandas import DataFrame 
>>> df1 = DataFrame({'col1':[1,2,3], 'col2':[2,3,4]}) 
>>> df2 = DataFrame({'col1':[4,2,5], 'col2':[6,3,5]}) 

>>> df = df2[~df2.isin(df1)] 
>>> df 
    col1 col2 
0  4  6 
1 NaN NaN 
2  5  5 

: : 그러나 이것은 모든 NaN를 가진 행을 생성 당신은 사용할 수

>>> df 
    col1 col2 
0  4  6 
2  5  5 
+0

'NaN'으로 채워진 행은 ** 빈 행이 아니라 **입니다. – gented

답변

2

dropna :

In [13]: df2[df1 != df2].dropna(how='all') 
Out[13]: 
    col1 col2 
0  4  6 
2  5  5 
+0

dropna()와 dropna (how = 'all')의 차이점은 무엇입니까? – aerokite

+1

'dropna()'는'dropna (how = 'any')'가 디폴트입니다. 그러면 NaN이있는 모든 행이 삭제됩니다. 'dropna (how = 'all')'는 * all *이 행의 값이 NaN 인 경우에만 행을 삭제합니다. – unutbu

1
>>> df = df2[~df2.isin(df1).all(1)] 
>>> df 
    col1 col2 
0  4  6 
2  5  5 
+1

'df2.isin (df1)'대신'df1 == df2'를 사용할 수도 있습니다. – unutbu

관련 문제