2017-12-05 13 views
0

큰 데이터 프레임이 있고 그것을 읽을 때 다음 메시지가 나타납니다. DtypeWarning : 열 (0,8)이 혼합 된 형식입니다. 가져올 때 dtype을 지정하거나 low_memory = False로 설정하십시오.팬더 : 혼합 데이터 형식의 Coloumn; 예외를 찾는 방법

수레의 기둥으로되어 있지만, 거기에 몇 개의 끈이 붙어있는 것 같습니다. 나는 그것들을 확인하고 그것들을 제거하려고한다.

그러나 그것은 나에게 메모리 부족 오류를했다 : (1, isinstance (row.AnnoyingColumn (INT, 플로트)) 람다 행)

나는 df.apply을 시도했다.

더 나은 방법이 있어야한다고 가정합니다.

답변

1

이 당신에게 줄 것이다 진정한 경우 플로트 :

mask = df.some_column.apply(lambda x: isinstance(x, str)) 
df = df[~mask] 

예 :

df.some_column.apply(lambda x: isinstance(x, (int,str))) 

그래서, 문자열을 제거 : INT 또는 문자열이 경우

df.some_column.apply(lambda x: isinstance(x, float)) 

이 당신에게 진정한 줄 것이다 부유물과 문자열을 제거하는 :

$ df = pd.DataFrame({'a': [1,2.0,'hi',4]}) 
$ df 
    a 
0 1 
1 2 
2 hi 
3 4 

$ mask = df.a.apply(lambda x: isinstance(x, (float,str))) 
$ mask 
0 False 
1 False 
2  True 
3 False 
Name: a, dtype: bool 

$ df = df[~mask] 
$ df 
    a 
0 1 
3 4