我有一个包含数百列的数据集。其中一些列具有timedelta64类型。当我使用
fillna(0)我收到一个错误Passing integers to fillna for timedelta64[ns] dtype is no longer supported. To obtain the old behavior, pass pd.Timedelta(seconds=n)
如何修复此错误?
发布于 2020-12-24 14:51:56
您可能希望根据列的数据类型分别更新这些列:
# Update inplace numeric columns
df.update(df.select_dtypes('number').fillna(0))
# Update inplace timedelta columns
df.update(df.select_dtypes('timedelta64[ns]').fillna(pd.Timedelta(seconds=0)))另一种可能的更新语法是:
df.loc[:, df.dtypes.eq(float)] = df.select_dtypes(float).fillna(0)发布于 2020-12-24 14:29:20
如error use中所述:
df['columnname'].fillna(pd.Timedelta(seconds=0))不推荐使用
数据类型向Series.fillna()和DataFrame.fillna()传递整数,这将在将来的版本中引发TypeError。使用obj.fillna(pd.Timedelta(...))
https://stackoverflow.com/questions/65434747
复制相似问题