mrg*_*gou 9 python downcast pandas
为了使用tabulate很好地打印数据帧,以便将NaN和NaT打印为空单元格,我已经成功地使用了它:
print(tabulate(df.astype(object).fillna("")))
Run Code Online (Sandbox Code Playgroud)
现在,这会导致以下警告:
FutureWarning:在 .fillna、.ffill、.bfill 上向下转换对象 dtype 数组已被弃用,并将在未来版本中更改。改为调用 result.infer_objects(copy=False) 。
我不知道现在我应该做什么。我当然不知道infer_objects(copy=False)有什么帮助,因为这里的重点确实是强制将所有内容转换为字符串表示形式并用空字符串填充缺失值。
小智 1
我今天遇到了同样的问题,我仍在寻找解决方案。就你而言,我必须承认我不知道astype(object)两次打电话有什么作用。但是,正如错误消息所提到的,您可以尝试避免这种情况,并将数据转换为字符串(如果这对于您正在处理的数据可行)。然后,您可以像这样使用pd.DataFrame.replace :
df.astype(str).replace(to_replace=["nan", "None"], value=(""))
Run Code Online (Sandbox Code Playgroud)
当然,您可能希望进行调整to_replace以包含您正在搜索的 NaN 和 NaT。在我的系统上,astype(str)转换NaN为nan,因此它对您来说可能类似 和NaT。