Pandas 读取 csv 替换 #DIV/0!和#VALUE!与 NaN

Posted

技术标签:

【中文标题】Pandas 读取 csv 替换 #DIV/0!和#VALUE!与 NaN【英文标题】:Pandas read csv replacing #DIV/0! and #VALUE! with NaN 【发布时间】:2015-03-18 13:25:46 【问题描述】:

我是 Pandas for Python 的新手,正忙于阅读 csv 文件。不幸的是,Excel 文件中有一些带有#VALUE 的单元格!和#DIV/0!在他们之中。我无法在 Excel 中解决此问题,因为数据是从其他工作表中提取的。 Pandas 将这些列变成objects 而不是numpy64,所以我无法从中绘制。我想替换#VALUE!和#DIV/0! Pandas 中带有 NaN 条目的字符串,但是我找不到如何执行此操作。我尝试了以下方法(我的代码运行,但没有任何改变):

import pandas as pd
import numpy as np
df = pd.read_csv('2013AllData.csv')
df.replace('#DIV/0!', np.nan)

【问题讨论】:

【参考方案1】:

而不是加载后替换,只需在读取 csv 时设置参数 na_values,它会在创建 df 时将它们转换为 NaN 值:

df = pd.read_csv('2013AllData.csv', na_values=['#VALUE!', '#DIV/0!'])

查看文档:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html#pandas.read_csv

【讨论】:

如果想反其道而行之 - 知道 excel 中哪里有错误并让开发人员知道?有办法处理吗?

以上是关于Pandas 读取 csv 替换 #DIV/0!和#VALUE!与 NaN的主要内容,如果未能解决你的问题,请参考以下文章

Python Pandas read_excel dtype str 在读取或通过 to_csv 写入时将 nan 替换为空白 ('')

pandas处理csv文件时,添加索引 2019-02-27

pandas读写CSV操作

pandas读取和写入excel,csv太慢怎么办

怎么调用pandas读取csv文件

在 pandas 中读取和写入 csv 会更改单元格值