将 pandas 系列的 dtype <- 'datetime64' 转换为 dtype <- 'np.int' 而无需迭代
Posted
技术标签:
【中文标题】将 pandas 系列的 dtype <- \'datetime64\' 转换为 dtype <- \'np.int\' 而无需迭代【英文标题】:convert pandas Series of dtype <- 'datetime64' into dtype <- 'np.int' without iterating将 pandas 系列的 dtype <- 'datetime64' 转换为 dtype <- 'np.int' 而无需迭代 【发布时间】:2020-11-25 17:22:45 【问题描述】:考虑以下示例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
对象。我从 here 和 here 发布的解决方案中获得了一些见解,但这并不能解决我的问题。
【问题讨论】:
df['date'].astype('int64')
?
你检查过这个解决方案了吗:***.com/questions/16852911/…
@anky/@Jorge 我整个下午都在努力解决这个问题!!。这解决了我的问题。非常感谢。
这能回答你的问题吗? pandas convert from datetime to integer timestamp
【参考方案1】:
根据上面的@anky cmets,解决方案很简单。
df.date.astype('int64') >> to int64 dtype
pd.to_datetime(df.date) >> from int dtype to datetime64 dtype
【讨论】:
以上是关于将 pandas 系列的 dtype <- 'datetime64' 转换为 dtype <- 'np.int' 而无需迭代的主要内容,如果未能解决你的问题,请参考以下文章
如何从 dtype 为列表的 Pandas 系列中删除 NaN?
将包含 NaN 的 Pandas 列转换为 dtype `int`