首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TypeError:使用时间戳数据时不能从ndarray中减去DatetimeArray

TypeError:使用时间戳数据时不能从ndarray中减去DatetimeArray
EN

Stack Overflow用户
提问于 2022-11-01 20:40:26
回答 1查看 79关注 0票数 1

我试图计算两列之间的天数,其中每个列存储为TimeStamp对象并包含NaN值。当我试图进行计算时,我收到的是TypeError: cannot subtract DatetimeArray from ndarray错误。我的问题是,当我拥有NaN值时,如何才能实现我想要的结果。对我来说最好的情况是,如果有一个NaN值,结果也应该是NaN。

代码语言:javascript
运行
复制
import datetime
import pandas as pd

d1 = {'col1':  pd.Timestamp(2017, 1, 1, 12), 'col2' : [np.nan]}
x= pd.DataFrame(d1)

x['col3'] = (x['col2'] - x['col1']).dt.days.astype('int64')
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-02 11:39:54

将列转换为正确的格式: pd.to_datetime。使用'Int64‘而不是‘int64 64’。

通常,如果打印出np.nan类型,那么它将是一个浮动。如果这个类型适合你,那么把浮子类型。

代码语言:javascript
运行
复制
import pandas as pd
import numpy as np

d1 = {'col1':  [pd.Timestamp(2017, 1, 1, 12)], 'col2' : [np.nan]}
x= pd.DataFrame(d1)
x['col1'] = pd.to_datetime(x['col1'], errors='raise')
x['col2'] = pd.to_datetime(x['col2'], errors='raise')

x['col3'] = (x['col2'] - x['col1']).dt.days.astype('Int64')

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

https://stackoverflow.com/questions/74281541

复制
相关文章

相似问题

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