2012-05-23 2 views
0
In [139]: pandas.__version__ 
Out[139]: '0.7.3' 

DataFrame에는 두 개의 정렬 된 시리즈가 있는데, 서로 일치하지 않는 "NaN"이 여러 개 있습니다. 나는 모든 "NaN 's"을 제거하면서 그들 사이의 교차점을 인쇄하고 싶지만 느슨한 정렬은하지 않아야한다. 즉, 둘 중 하나에서 "NaN"을 찾은 두 시리즈 밀에서 행을 제거하려고합니다. 그것은 간단하게 들리지만, 나는 dropna의 시리즈 이후에 어떤 작업도하지 않으며 시리즈에서 dropna를 분리 할 수 ​​없습니다. 나는 이것을 수행하기위한 올바른 df 함수를 이해할 수 없었습니다 - 몇몇은 문서화되지 않았습니다. 그냥 예를 들어, 나는이 먹고 싶어 :내부 시리즈 인쇄

10   NaN  -1.200 
11   NaN  -1.324 
12 0.000585  NaN 
13 0.000573  -1.453 
14   NaN  -2.006 

및 인쇄이 :

13 0.000573  -1.453 
+1

다음은 조금 어렵습니다. 왜 df.dropna()가 원하는게 아닌가요? 위의 DataFrame에서 그렇게 해 보셨습니까? – Karmel

+0

당신은 dropna df 전적으로 의미합니까 ??? 더 나은 방법이있을 수 있습니다. 그것은 매우 큰 데이터 세트입니다. – fred

+0

하지만 정확히 당신이하고 싶은 것이 아닙니까? 그게 아니라면 뭐라 설명하니? http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.html#pandas.DataFrame.dropna – Karmel

답변

1

내가 위에서 내 의견에 썼던 것처럼, 최선의 대답은 :

newdf = df1.dropna()[['S', 'JEXP']] 

그 dropan은 원본 Df의 조각에서 시작하여 일련의 관심을 유지합니다. 카르멜는 제안했다 :도하지만, 작품과 dropan의 하위 집합 목록을 기반으로

newdf = df1.dropna(subset=['S', 'JEXP']) 

을, 다른 모든 시리즈를 유지 - 그것은 당신의 데이터 집합을 복제합니다.