pandas 错误“未来警告. dtype与float64不兼容,请先显式转换为兼容的dtype”

xwbd5t1u  于 2023-10-14  发布在  其他
关注(0)|答案(1)|浏览(1624)

我将Python从3.9更新到3.11.6,并开始得到这个错误:

**未来警告:

不建议设置不兼容dtype的项,并将在将来的pandas错误中引发。值'1000000'的dtype与float64不兼容,请先显式转换为兼容的dtype。**
警告的行是:
df.fillna('1000000', inplace=True)
阅读stackoverflow命中像Solving incompatible dtype warning...DeprecationWarning: The default dtype for empty Series...和更多。
但仍然没有抓住这个问题以及如何解决它。代码仍然有效,只是产生了这个警告消息。希望有人能帮助我看一下上面的单行代码,而不是一个可复制的代码。
谢谢.
代码仍然有效,只是产生了这个警告消息。我想知道如何摆脱这个警告。

mm5n2pyu

mm5n2pyu1#

您需要为不同的列类型使用不同的fillna策略。'1000000'是一个字符串,而1000000是一个int,1000000.0是一个float。将字符串放在float64列中会产生错误。您可以遍历列,获取列类型并适当地填充NA。

  1. for col in df:
  2. dt = df[col].dtype
  3. if (dt == int) or (dt == float):
  4. df[col].fillna(1000000, inplace=True)
  5. else:
  6. df[col].fillna("1000000", inplace=True)

相关问题