如何用NULL将NULL视为普通字符串?

发布于 2021-01-29 17:39:47

我有一个带有字符串列的csv文件,我想用熊猫阅读它。在此文件中,字符串null作为实际值出现,不应视为缺失值。

例:

import pandas as pd
from io import StringIO

data = u'strings,numbers\nfoo,1\nbar,2\nnull,3'
print(pd.read_csv(StringIO(data)))

这给出以下输出:

  strings  numbers
0     foo        1
1     bar        2
2     NaN        3

我该怎么做才能将值null按原样(而不是NaN)输入到DataFrame中?可以假定该文件不包含任何实际缺少的值。

关注者
0
被浏览
47
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以convertersstring列指定一个参数。

    pd.read_csv(StringIO(data), converters={'strings' : str})
    
      strings  numbers
    0     foo        1
    1     bar        2
    2    null        3
    

    这将绕过熊猫的自动解析。


    另一个选项是设置na_filter=False

    pd.read_csv(StringIO(data), na_filter=False)
    
      strings  numbers
    0     foo        1
    1     bar        2
    2    null        3
    

    这适用于整个DataFrame,因此请谨慎使用。如果您要通过外科手术将其应用于选择列,则建议使用第一个选项。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看