首页 > 解决方案 > 将 pandas 系列的 dtype <- 'datetime64' 转换为 dtype <- 'np.int' 而无需迭代

问题描述

考虑以下示例pandas DataFrame

df = pd.DataFrame({'date':[pd.to_datetime('2016-08-11 14:09:57.00'),pd.to_datetime('2016-08-11 15:09:57.00'),pd.to_datetime('2016-08-11 16:09:57.8700')]})

我可以将单个实例转换为np.int64类型

print(df.date[0].value)
1470924597000000000

或将整个列转换iteratively

df.date.apply(lambda x: x.value)

我怎样才能在不使用的情况下 iteration实现这一目标?就像是

df.date.value

我还想在不使用迭代的情况下将对象转换回np.int64对象。pd.Timestamp我从此处此处发布的解决方案中获得了一些见解,但这并不能解决我的问题。

标签: python-3.xpandasnumpydatetimeepoch

解决方案


根据上面的@anky 评论,解决方案很简单。

df.date.astype('int64') >> to int64 dtype
pd.to_datetime(df.date) >> from int dtype to datetime64 dtype

推荐阅读