143

pandas ライブラリを使用して CSV データを読み込んでいます。私のデータでは、特定の列に文字列が含まれています。文字列"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 として読み取ります。read_csvstrに引数を渡そうとしましたが (を使用)、空のセルを NaN として読み取ります。convertersconverters={'One': str})

読み取り後にfillnaで値を入力できることはわかっていますが、特定のCSV列の空のセルをNaNではなく空の文字列として読み取る必要があることをパンダに伝える方法は本当にありませんか?

4

5 に答える 5

66

ここに何らかのオプションを追加するためのチケットを追加しました。

https://github.com/pydata/pandas/issues/1450

それまでの間、result.fillna('')あなたがしたいことをするべきです

編集: 開発版 (0.8.0 最終版) で空のリストを指定するとna_values、空の文字列は結果に空の文字列のままになります

于 2012-06-12T21:33:20.550 に答える