データを.csv形式で処理していて、すべての空のセルを空の文字列の値に設定する必要があります。その上変数がPythonで空であるかどうかを確認する方法
' '
'NaN'
'nan'
'\n'
' '
そして、私が直面してる
問題は、それらのファイルは、異なる環境でのいくつかの人々のために操作されているということです、それゆえのようなこれらの細胞上の様々な異なるジャンク値が、あります。
私は、これらのタイプの「ジャンク値」をすべて識別する標準的な方法を探しています。
データを.csv形式で処理していて、すべての空のセルを空の文字列の値に設定する必要があります。その上変数がPythonで空であるかどうかを確認する方法
' '
'NaN'
'nan'
'\n'
' '
そして、私が直面してる
問題は、それらのファイルは、異なる環境でのいくつかの人々のために操作されているということです、それゆえのようなこれらの細胞上の様々な異なるジャンク値が、あります。
私は、これらのタイプの「ジャンク値」をすべて識別する標準的な方法を探しています。
あなたは' '
と'\n'
などの空白値を排除するだろうが、'NaN'
または'nan'
のような値を処理しませんisspace
機能を使用することができます。 isspace
を使用してに加えて、私もブラックリストを作成しますので、これらに対処するための標準的な方法は、例えば、実際にはありません。:
blacklist = ['NaN', 'nan'] # add more as needed
その後、不要な値をフィルタリングするisspace()
プラスあなたblacklist
を使用しています。
あなたはcsvをPandas DataFrameに読み込んでから、DataFrame.fillna()
を使用できます。
使用.strip()空白文字を削除し、値はあなたが無視したいものであるかどうかを確認するには:
if value.strip() in ['', 'NaN', 'nan']:
# ignore this value
または、大文字と小文字を区別しない作りを:
if value.strip().lower() in ['', 'nan']:
# ignore this value
私は思います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データをインポートし、同じことを行うことができます。
希望します。
'if yourStringVar.strip():'? – CristiFati
'NaN'では機能しません –