python - 获取 pandas.read_csv 以将空值读取为空字符串而不是 nan

标签 python csv pandas

我正在使用 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。我尝试将 converters 参数中的 str 传递给 read_csv (使用 converters={'One': str})),但它仍将空单元格读取为 NaN。

我意识到我可以在读取后使用 fillna 填充值,但是真的没有办法告诉 pandas 特定 CSV 列中的空单元格应该被读取为空字符串而不是 NaN?

最佳答案

阅读其他答案和评论后,我仍然感到困惑。但现在答案似乎更简单了,所以你开始吧。

自 Pandas 0.9 版(自 2012 年起)以来,您可以通过简单地设置 keep_default_na=False 来读取将空单元格解释为空字符串的 csv:

pd.read_csv('test.csv', keep_default_na=False)

这个问题在

中有更清楚的解释

这是在 2012 年 8 月 19 日针对 Pandas 0.9 版修复的

关于python - 获取 pandas.read_csv 以将空值读取为空字符串而不是 nan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10867028/

相关文章:

python - 如何在python 2环境conda中安装keras模块?

python - 如何在 Pandas 的 .csv 文件中写入 DataFrame 时删除索引列?

python - 如何在 sklearn 中使用 OneHotEncoder 的输出?

python - Arcpy - 创建缓冲区,然后溶解在单个脚本中

python - 用python3打印字符串格式: print from unpacked array *some* of the time

python - 将多个 csv 文件读入 Pandas Data Frame

python - 处理巨大的 bz2 文件

python - 将字典迭代转换为 pandas 数据框

python - Django 电子商务网站巨大的产品页面初始加载时间(等待)

excel - Excel 的 CSV,包括前导零和逗号