我正在使用熊猫库读取一些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。我试着传入converters
参数中的str
来读取csv(使用converters={'One': str})
),但它仍然将空细胞读取为NaN。
我意识到我可以在阅读之后用fillna填充这些值,但是真的没有办法告诉pandas某个CSV列中的空单元格应该被读取为空字符串而不是NaN吗?
在阅读了其他的答案和评论之后,我仍然感到困惑。但现在的答案似乎更简单了,所以你来吧。
由于Pandas版本0.9(从2012年起),您可以通过简单设置
keep_default_na=False
读取csv,空单元格解释为空字符串:这个问题在
2012年8月19日,熊猫版的0.9英寸
我们在Pandas read_csv中有一个简单的论点:
使用:
Pandas文档清楚地解释了上述论点的工作原理。
Link
我在这里添加了一张票来添加某种选项:
https://github.com/pydata/pandas/issues/1450
同时,
result.fillna('')
应该做你想做的事编辑:在开发版本(最终版本为0.8.0)中,如果指定空的
na_values
列表,则结果中将保留空字符串相关问题 更多 >
编程相关推荐