私は CSV データを読み込むために pandas ライブラリを使用しています。私のデータでは、特定の列に文字列が含まれています。文字列は、"nan"
空の文字列と同様に、可能な値です。私は pandas に「nan」を文字列として読み込ませることに成功しましたが、空の値を NaN として読み込ませないようにする方法がわかりません。サンプル データと出力を以下に示します。
One,Two,Three
a,1,one
b,2,two
,3,three
d,4,nan
e,5,five
nan,6,
g,7,seven
>>> pandas.read_csv('test.csv', na_values={'One': [], "Three": []})
One Two Three
0 a 1 one
1 b 2 two
2 NaN 3 three
3 d 4 nan
4 e 5 five
5 nan 6 NaN
6 g 7 seven
「nan」は文字列「nan」として正しく読み取られますが、空のセルは NaN として読み取られます。引数に を ( を使用)str
でread_csv に渡してみましたが、空のセルは NaN として読み取られます。converters
converters={'One': str})
fillna を使用して読み取り後に値を埋めることができることはわかっていますが、特定の CSV 列の空のセルを NaN ではなく空の文字列として読み取るように pandas に指示する方法は本当にないのでしょうか?
ベストアンサー1
他の回答やコメントを読んでもまだ混乱していました。しかし、今では答えが簡単になったようですので、ここに示します。
Pandas バージョン 0.9 (2012 年以降) 以降では、次のように設定するだけで、空のセルを空の文字列として解釈して CSV を読み取ることができますkeep_default_na=False
。
pd.read_csv('test.csv', keep_default_na=False)
この問題は、
これは2012年8月19日にPandasバージョン0.9で修正されました。