2014-10-08 4 views
3

저는 Pandas를 처음 접했지만 잠시 R을 사용해 보았습니다.Python Pandas : 데이터 프레임 필터링

문제는 필터가 내 데이터 프레임 중 하나에서 작동하지 않는 이유를 알아내는 것입니다. 데이터 프레임 data_df에 여러 개의 열이 있으며 그 중 하나는 국가 이름이 들어있는 c입니다. 행을 걸러 내려고하는데 c == None입니다. 내 첫 번째 시도

이 작업을 수행했다 :

countries_df = data_df[data_df.c != None] 

그러나, 0 행을 산출하는. 그러나 이것은 작동했습니다 :

countries_df = data_df[~data_df.c.isin([None])] 

누군가가 그 이유를 설명 할 수 있습니까? 팬더 문서에서 첫 번째 필터가 올바르게 필터링 될 수 있어야합니다.

일부 샘플 행 :

_heartbeat_       a     al  c  cy  g 
0 NaN Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; H... en-US US Anaheim 15r91 
1 NaN Mozilla/4.0 (compatible; MSIE 7.0; Windows NT ... en-us None NaN ifIpBW 
2 NaN Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20... en-US,en;q=0.5 US Fort Huachuca 10DaxOu 
3 NaN Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; S... en-US US Houston TysVFU 
4 NaN Opera/9.80 (Android; Opera Mini/7.5.33286/29.3... en None NaN 10IGW7m 
5 NaN Mozilla/5.0 (compatible; MSIE 10.0; Windows NT... en-US US Mishawaka 13GrCeP 
6 NaN Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) G... en-US,en;q=0.5 US Hammond YmtpnZ 
7 NaN Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_5 li... en-us None NaN 13oM0hV 
8 NaN Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like ... en-us AU Sydney 15r91 
9 NaN Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKi... en-US,en;q=0.8 None NaN 109LtDc 
10 NaN Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like ... en-us US Middletown 109ar5F 
11 NaN Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like ... en-us US Germantown 107xZnW 
+0

문제를 보여주는 샘플 데이터 세트를 제공 할 수 있습니까? – BrenBarn

+0

위의 샘플 행을 추가했습니다. – kk415kk

답변

9

이 어떤지를 비교했을 때 팬더와 NumPy와 특별히 None을 치료하는 것으로 보인다. 팬더에서 None은 누락 된 값을 나타내는 NaN과 같아야합니다. 값이 없음 (또는 nan)이 아닌 행을 찾으려면 data_df[data_df.c.notnull()] (또는 data_df[~data_df.c.isnull()])을 사용할 수 있습니다.

+2

'notnull'을 사용하기에 약간 더 읽기 쉽습니다. 그래서'data_df [data_df.c.notnull()]' – EdChum