2017-11-20 4 views
1

다음 데이터 프레임이있는 경우. Participation, Homework, Test, Presentation (null이 4 열 중 하나 인 경우)에 null이 있으면 해당 행을 제거하고 싶습니다. 팬더에서 어떻게 이것을 할 수 있습니까?하위 집합 열 (팬더) 중 하나에서 null 값을 가진 행 제거

Name Participation Homework Test Presentation Attendance 
Andrew 92    Null  85 95   88 
John 95    88  98 Null   90 
Carrie 82    99  96 89   92 
Simone 100   91  88 99   90 

여기서는 데이터 프레임에서 Carrie와 Simone을 제외한 모든 사용자를 제거하고 싶습니다. 팬더에서 어떻게 이것을 할 수 있습니까?

나는 Stackoverflow에서 이것이 df = df[pd.notnull(df['column_name'])]을 도울 것이라고 생각했지만, 어쨌든 나는 각 열 대신에 모든 4 개의 열 (그래서 부분 집합)에 대해 이것을 할 수 있는가?

감사합니다.

답변

4

교체를 건너 뛸 수 있습니다.

df[df.ne('Null').all(1)] 

    Name Participation Homework Test Presentation Attendance 
2 Carrie    82  99 96   89   92 
3 Simone   100  91 88   99   90 
3

준비, 먼저 'null'문자열을 np.nan으로 바꾸자. 이제

는 이제 notnullall를 사용하여이를 해보자 축 = 1 :

df[df.replace('Null',np.nan).notnull().all(1)] 

출력 :

Name Participation Homework Test Presentation Attendance 
2 Carrie    82  99 96   89   92 
3 Simone   100  91 88   99   90 

또는 isnull를 사용하여, any~ :

df[~df.replace('Null',np.nan).isnull().any(1)] 
3

replace + dropna

df.replace({'Null':np.nan}).dropna() 
Out[504]: 
    Name Participation Homework Test Presentation Attendance 
2 Carrie    82  99 96   89   92 
3 Simone   100  91 88   99   90 
: 당신은 ne 사용하는 경우