首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python pandas timedelta64 fillna

Python pandas timedelta64 fillna
EN

Stack Overflow用户
提问于 2020-12-24 14:24:44
回答 2查看 523关注 0票数 0

我有一个包含数百列的数据集。其中一些列具有timedelta64类型。当我使用

代码语言:javascript
复制
fillna(0)

我收到一个错误Passing integers to fillna for timedelta64[ns] dtype is no longer supported. To obtain the old behavior, pass pd.Timedelta(seconds=n)

如何修复此错误?

EN

回答 2

Stack Overflow用户

发布于 2020-12-24 14:51:56

您可能希望根据列的数据类型分别更新这些列:

代码语言:javascript
复制
# 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)))

另一种可能的更新语法是:

代码语言:javascript
复制
df.loc[:, df.dtypes.eq(float)] = df.select_dtypes(float).fillna(0)
票数 1
EN

Stack Overflow用户

发布于 2020-12-24 14:29:20

如error use中所述:

代码语言:javascript
复制
df['columnname'].fillna(pd.Timedelta(seconds=0))

不推荐使用

数据类型向Series.fillna()和DataFrame.fillna()传递整数,这将在将来的版本中引发TypeError。使用obj.fillna(pd.Timedelta(...))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65434747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档