2017-04-23 2 views
0

데이터를 .csv 형식으로 처리하고 있고 모든 빈 셀을 빈 문자열 값으로 설정하려고합니다. 그래서변수가 파이썬에서 비어 있는지 확인하는 방법

' ' 
'NaN' 
'nan' 
'\n' 
' ' 

그리고 : 내가 직면하고있어

문제는 해당 파일이 서로 다른 환경에서 여러 사람들을 위해 조작 된 것입니다, 따라서 같은이 세포에 다양한 다른 쓰레기 값이있다.

"정크 값"의 모든 유형을 식별하는 표준 방법을 찾고 있습니다.

+0

if yourStringVar.strip() :'? – CristiFati

+0

'NaN'에서는 작동하지 않습니다. –

답변

2

당신은 ' ''\n' 같은 공백 값을 제거하는 것이지만, 'NaN' 또는 'nan' 같은 값을 처리 할 것 isspace 기능을 사용할 수 있습니다.

blacklist = ['NaN', 'nan'] # add more as needed

그런 다음 원하지 않는 값을 필터링 할 수 isspace() 플러스 blacklist을 사용 나는 또한 블랙리스트를 만들 것 isspace을 사용하는 것 외에도, 그래서이 처리 할 수있는 표준 방법, 예컨대이 : 정말 없습니다.

0

csv를 Pandas DataFrame으로 읽은 다음 DataFrame.fillna()을 사용할 수 있습니다.

4

사용 .strip() 공백을 제거하고 값이 하나가 당신을 무시 할 수 있는지 확인합니다 :

if value.strip() in ['', 'NaN', 'nan']: 
    # ignore this value 

를 또는, 대소 문자를 구분합니다

if value.strip().lower() in ['', 'nan']: 
    # ignore this value 
0

나는 생각한다 pandas.replace은 문제의 좋은 대안이 될 것입니다.

일부 샘플 코드는 다음과 같습니다

import pandas as pd 
# sample data 
dic = {'a':['NAN', "", "NaN"], 'b':["", "nan", '\n'], 'c':[1,'2','3']} 
df = pd.DataFrame(dic) 

replace_list = ['NaN', '', 'nan', '\n'] 
df_clean = df.replace(replace_list, '') 
df_clean 

당신은 팬더에 CSV 데이터를 가져 와서 같은 일을 할 수 있습니다.

희망이 있습니다.

관련 문제