为了使用 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 将所有内容转换为字符串表示形式并用空字符串填充缺失值。
我今天遇到了同样的问题,我仍在寻找解决方案。就你而言,我必须承认我不知道两次调用
astype(object)
有什么作用。但是,正如错误消息所提到的,您可以尝试避免这种情况,并将数据转换为字符串(如果这对于您正在处理的数据可行)。然后,您可以像这样使用pd.DataFrame.replace:
df.astype(str).replace(to_replace=["nan", "None"], value=(""))
当然,您可能希望调整
to_replace
以包含您正在搜索的 NaN 和 NaT。在我的系统上,astype(str)
将 NaN
转换为 nan
,因此您和 NaT
可能会类似。