>> d a 0 1 1-6ren">
gpt4 book ai didi

python - 将 NaN 用于无法使用 astype 转换的值

转载 作者:太空宇宙 更新时间:2023-11-04 10:16:57 25 4
gpt4 key购买 nike

我有一个非常大的 Pandas DataFrame,如下所示:

>>> d = pd.DataFrame({"a": ["1", "U", "3.4"]})
>>> d
a
0 1
1 U
2 3.4

当前该列被设置为一个对象:

>>> d.dtypes
a object
dtype: object

我想将此列转换为 float ,以便我可以使用 groupby() 并计算平均值。当我尝试使用 astype 时,由于无法转换为 float 的字符串,我正确地得到了一个错误:

>>> d.a.astype(float)
ValueError: could not convert string to float: 'U'

我想做的是将所有元素转换为 float ,然后替换那些不能被 NaN 转换的元素。

我该怎么做?

我尝试设置raise_on_error,但它不起作用,dtype 仍然是object

>>> d.a.astype(float, raise_on_error=False)
0 1
1 U
2 3.4
Name: a, dtype: object

最佳答案

使用to_numeric并指定 errors='coerce' 以强制将无法解析为数值的字符串变为 NaN:

>>> pd.to_numeric(d['a'], errors='coerce')
0 1.0
1 NaN
2 3.4
Name: a, dtype: float64

关于python - 将 NaN 用于无法使用 astype 转换的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34771807/

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