我使用熊猫库来读取某些CSV数据。在我的数据中,某些列包含字符串。字符串"nan"
是一个可能的值,因为它是一个空字符串。我设法让熊猫读取“nan”作为字符串,但我无法弄清楚如何让它读取不为NaN的空值。这里的样本数据,并输出获取pandas.read_csv读取空值作为空字符串而不是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的。我试着传递str
在converters
参数read_csv(与converters={'One': str})
)但它仍然读取空单元格作为NaN
我意识到我可以用fillna填充值后,但真的没有办法告诉熊猫一个特定的CSV列中的空单元格应阅读为空字符串代替NaN?
[DataFrame.fillna的文档。](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.fillna.html)尝试'result.fillna('',inplace = True )'。否则它会创建数据帧的副本。 – osa
对于这样一个旧的答案感到遗憾,但这是否曾经发生过?据我所知,[这个GitHub PR](https:// github。com/pydata/pandas/pull/1522)它已经关闭而没有被合并过,我在pandas版本0.14.x – drammock
[Documentation](http://pandas.pydata.org/pandas- docs/stable/generated/pandas.read_csv.html)现在提供'na_values'(按列索引的列表或词典)和'keep_default_na'(布尔)。 'keep_default_na'值指示是否应该替换或追加熊猫的默认NA值。 OP的代码目前不起作用,仅仅是因为它缺少了这个标志。对于这个例子,你可以使用'pandas.read_csv('test.csv',na_values = ['nan'],keep_default_na = False)'。 – delgadom