繁体   English   中英

TypeError:不能从 [datetime64[ns]] 到 [timedelta64[D]] 键入 datetimelike

[英]TypeError: cannot astype a datetimelike from [datetime64[ns]] to [timedelta64[D]]

所以我试图计算两天之间的持续时间,但我只想要持续时间的天数而不是分钟和秒。 我正在使用的代码如下:

df['duration']=df['deadline'].sub(df['created_at'].astype('datetime64[D]'))

但是,这给了我这样的感觉:35 天 12:42:40。 但我不想要“天 12:42:40”。 相反,我想将 35 提取为整数。 所以我尝试用 [timedelta64[D] 替换 datetime64[D],这给了我 TypeError。 我有什么办法可以做到这一点吗?

解决此问题的最 Pythonic 和最简单的方法是将两个系列相减,然后访问系列上的datetime 访问器以检索日期。

这是一个简单的例子。

df = pd.DataFrame({
    'deadline': pd.date_range(start='2020-03-01', end='2020-03-05', periods=5),
    'created_date': pd.date_range(start='2020-01-01', end='2020-01-9', periods=5)
})

df['duration'] = (df.deadline - df.created_date).dt.days

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM