我正在使用pandas库读取一些CSV数据。在我的数据中,某些列包含字符串。该字符串"nan"
是一个可能的值,一个空字符串也可以。我设法让大熊猫将“ 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的。我想传递str
的converters
参数read_csv(带converters={'One': str})
),但它仍然读取空单元格作为NaN的。
我知道我可以在读取后使用fillna填充值,但是真的没有办法告诉熊猫特定CSV列中的空单元格应被读取为空字符串而不是NaN吗?
我添加了票证以在此处添加某种选项:
https://github.com/pydata/pandas/issues/1450
同时,result.fillna('')
应该做你想做的
编辑:在开发版本中(最终为0.8.0),如果您指定的空列表na_values
,则空字符串将在结果中保留空字符串
阅读其他答案和评论后,我仍然感到困惑。但是,现在的答案似乎更简单,因此您可以开始操作。
从Pandas 0.9版(从2012年开始)开始,您可以通过简单地设置将带有空单元格的csv解释为空字符串keep_default_na=False
:
pd.read_csv('test.csv', keep_default_na=False)
此问题在以下内容中有更清楚的说明
该问题已于2012年8月19日在Pandas 0.9版中修复
我们在Pandas read_csv中有一个简单的参数:
使用:
df = pd.read_csv('test.csv', na_filter= False)
熊猫的文档清楚地解释了上述论点是如何工作的。
本文地址:http://python.askforanswer.com/huoqupandas-read_csvyijiangkongzhiduquweikongzifuchuanerbushinan.html
文章标签:csv , pandas , python
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
文章标签:csv , pandas , python
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
评论已关闭!