错误“FutureWarning ... dtype 与 float64 不兼容,请首先显式转换为兼容的 dtype”

问题描述 投票:0回答:1

我将 Python 从 3.9 更新到 3.11.6,并开始出现此错误:

**未来警告:

设置不兼容的数据类型的项目已被弃用,并且将在 pandas 的未来错误中引发。值“1000000”的数据类型与 float64 不兼容,请首先显式转换为兼容的数据类型。**

警告的行是:

df.fillna('1000000', inplace=True)

阅读 stackoverflow 点击的内容,例如 解决不兼容的数据类型警告...DeprecationWarning:空系列的默认数据类型... 等等。

但仍然没有掌握这个问题以及如何解决它。该代码仍然有效,它只是产生此警告消息。 希望有人可以帮助我查看上面的单行代码而不是可复制的代码。

谢谢。

代码仍然有效,它只是产生此警告消息。试图看看如何摆脱这个警告。

python-3.x pandas deprecated dtype future-warning
1个回答
0
投票

您需要针对不同的列类型采用不同的

fillna
策略。
'1000000'
是字符串,
1000000
是整数,
1000000.0
是浮点数。将字符串放入
float64
列中将会产生错误。您可以迭代列,获取列类型并适当填充 NA。

for col in df:
    dt = df[col].dtype 
    if (dt == int) or (dt == float):
        df[col].fillna(1000000, inplace=True)
    else:
        df[col].fillna("1000000", inplace=True)
© www.soinside.com 2019 - 2024. All rights reserved.