2017-04-23 35 views
0

我正在處理.csv格式的數據,並且想要將所有空單元格設置爲空字符串的值。如何驗證python中的變量是否爲空

,我現在面臨的問題是,這些文件已被操縱的幾個人在不同的環境中,因此存在對這些細胞的各種不同的垃圾值,如:

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

等。

我正在尋找一種標準方法來識別所有這些類型的「垃圾值」。

+0

'if yourStringVar.strip():'? – CristiFati

+0

它不適用於'NaN' –

回答

2

可以使用isspace功能這將消除空白值一樣' ''\n'但不會處理這樣'NaN''nan'值。是不是真的有處理這些,所以除了使用isspace我還要創建一個黑名單的標準方式,例如:

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

然後使用isspace()再加上你的blacklist過濾掉不需要的值。

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數據,以熊貓和做同樣的事情。

希望它有幫助。