2017-04-23 23 views
0

データを.csv形式で処理していて、すべての空のセルを空の文字列の値に設定する必要があります。その上変数がPythonで空であるかどうかを確認する方法

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

そして、私が直面してる

問題は、それらのファイルは、異なる環境でのいくつかの人々のために操作されているということです、それゆえのようなこれらの細胞上の様々な異なるジャンク値が、あります。

私は、これらのタイプの「ジャンク値」をすべて識別する標準的な方法を探しています。

+0

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

+0

'NaN'では機能しません –

答えて

2

あなたは' ''\n'などの空白値を排除するだろうが、'NaN'または'nan'のような値を処理しませんisspace機能を使用することができます。 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データをインポートし、同じことを行うことができます。

希望します。

関連する問題