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

Erro "FutureWarning ... dtype incompatible with float64, please explicitly cast to a compatible dtype first"

提问人:AliasSyed 提问时间:10/13/2023 更新时间:10/13/2023 访问量:301

问:

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

**未来警告:

设置不兼容的 dtype 项已弃用,并且会在将来的 pandas 错误中引发。值“1000000”的 dtype 与 float64 不兼容,请先显式转换为兼容的 dtype。

警告的行是:

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

读取 stackoverflow 命中,例如 Solving incompatible dtype warning... 和 DeprecationWarning: The default dtype for empty Series... 等等。

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

谢谢。

代码仍然有效,它只是产生此警告消息。试图看看我怎样才能摆脱这个警告。

python-3.x pandas 已弃用 dtype future-warning

评论


答:

0赞 kelvt 10/13/2023 #1

您需要针对不同的列类型采用不同的策略。 是一个字符串,而是一个 int 并且是一个浮点数。将字符串放在列中将产生错误。您可以遍历列,获取列类型并适当地填充 NA。fillna'1000000'10000001000000.0float64

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)