gpt4 book ai didi

python - 在 Pandas 中,当使用 read_csv() 时,如何将 NaN 分配给不是预期 dtype 的值?

转载 作者:太空狗 更新时间:2023-10-30 01:20:24 25 4
gpt4 key购买 nike

注意:请原谅我的英语水平很低,随意修改问题的标题,或者下面的文字更容易理解

我的代码中有这一行:

moto = pd.read_csv('reporte.csv')

它发送一个DtypeWarning: Columns (2,3,4,5,6,7,8,9,10,12,13)​​ have mixed types.警告,所以我将其更改为

moto = pd.read_csv('reporte.csv', dtype={'TP': np.float64})

现在它会抛出一个 ValueError: could not convert string to float: 'None'

我用 Excel 检查了文件(大约 20 万行),是的,我发现一些单元格的值为“None”。

所以我的问题是:有没有办法忽略错误,或者强制 python 用 NaN 或其他东西填充有问题的错误?

我尝试了解决方案 here但它没有用。

最佳答案

我尝试创建一个 csv 来复制此反馈,但无法在 pandas 0.18 上使用,因此我只能推荐两种方法来处理此问题:

首先

如果您知道您的缺失值都由字符串 'none' 标记,那么请执行以下操作:

moto = pd.read_csv("test.csv", na_values=['none'])

您还可以向 na_values 列表添加其他应转换为 NaN 的标记。

第二

在不使用 dtype 选项的情况下再次尝试您的第一行。

moto = pd.read_csv('reporte.csv')

读取成功,因为您只收到警告。现在执行 moto.dtypes 来显示哪些列是对象。对于您要更改的内容,请执行以下操作:

moto.test_column = pd.to_numeric(moto.test_column, errors='coerce')

“强制”选项会将任何有问题的条目(例如“无”)转换为 NaN。

要一次转换整个数据帧,您可以使用 convert_objects。您也可以在单个列上使用它,但不赞成使用 to_numeric。选项 convert_numeric 对 NaN 进行强制转换:

moto = moto.convert_objects(convert_numeric=True)

在任何这些方法之后,继续 fillna做你需要做的事。

关于python - 在 Pandas 中,当使用 read_csv() 时,如何将 NaN 分配给不是预期 dtype 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40011531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com