2017-10-06 4 views
0

에서 빈 문자열을 제거 난 내가팬더는 : dataframe

df.drop(axis=0, how='all') 

를 사용하는 경우에만

id m1 m2 m3 
111 20 0  12 
333 3  1  18 

얻을 필요가 dataframe에게

id m1 m2 m3 
111 20 0  12 
222 0  0  0 
333 3  1  18 

을 가지고 있지만 그것은 나에게 전체 dataframe를 반환합니다. 어떻게 해결할 수 있습니까?

+0

@Bharathshetty 그것이 내가 그 dropna 죄송 생각'인플레 이스 = TRUE ' –

+0

나를 없음을 반환하지 않습니다. 당신은 드롭을 사용하지 않고 그것을 할 수 있습니다. 내 대답이 도움이되는지 확인하십시오. – Dark

답변

4

당신은 부울 인덱싱 즉에게

ndf = df[~(df.set_index('id')==0).all(1).values] 

출력을 사용할 수 있습니다

 
    id m1 m2 m3 
0 111 20 0 12 
2 333 3 1 18 
+1

완벽한 교과서 답, +1 – Vaishali

4
In [91]: ndf = df[df.filter(regex='^m').astype(bool).any(1)] 

In [92]: ndf 
Out[92]: 
    id m1 m2 m3 
0 111 20 0 12 
2 333 3 1 18 
+0

whats'^ m' 그 패턴을 처음 접 했나요? – Dark

+0

매우 똑똑하고 여기에 astyp (bool)을 알아내는 데 초가 걸렸습니다. – Vaishali

+0

@Bharathshetty, RegEx입니다. 'm'으로 시작하는 문자열입니다. – MaxU