pandas FutureWarning:在 .fillna、.ffill、.bfill 上向下转换对象 dtype 数组已被弃用,并将在未来版本中更改

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

为了使用 tabulate 很好地打印数据框,以便

NaN
NaT
打印为空单元格,我一直在成功地使用它:

print(tabulate(df.astype(object).astype(object).fillna("")))

现在,这会导致以下警告:

FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead.

我不知道我现在应该做什么。我当然不明白

infer_objects(copy=False)
有什么帮助,因为这里的重点确实是 force 将所有内容转换为字符串表示形式并用空字符串填充缺失值。

python pandas downcast
1个回答
0
投票

我今天遇到了同样的问题,我仍在寻找解决方案。就你而言,我必须承认我不知道两次调用

astype(object)
有什么作用。但是,正如错误消息所提到的,您可以尝试避免这种情况,并将数据转换为字符串(如果这对于您正在处理的数据可行)。然后,您可以像这样使用pd.DataFrame.replace

df.astype(str).replace(to_replace=["nan", "None"], value=(""))

当然,您可能希望调整

to_replace
以包含您正在搜索的 NaN 和 NaT。在我的系统上,
astype(str)
NaN
转换为
nan
,因此您和
NaT
可能会类似。

© www.soinside.com 2019 - 2024. All rights reserved.