You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pandas将datetime类型的Open Date、Close date列转换为timestamp格式

实现方案

以下是两种常见的转换实现,可根据你实际需要的timestamp格式选择:

方案1:转换为数值型Unix时间戳(秒/毫秒级,最常用)

import pandas as pd
import numpy as np
from datetime import datetime, date, time, timedelta

# 假设df为你的数据集对象
# 1. 转换为秒级Unix时间戳
df['Open Date_ts_sec'] = df['Open Date'].view('int64') // 10**9
df['Close date_ts_sec'] = df['Close date'].view('int64') // 10**9

# 2. 转换为毫秒级Unix时间戳(和原datetime64[ns]精度匹配)
df['Open Date_ts_ms'] = df['Open Date'].view('int64') // 10**6
df['Close date_ts_ms'] = df['Close date'].view('int64') // 10**6

# 空值兼容处理:避免空值转为0
df['Open Date_ts_ms'] = df['Open Date_ts_ms'].replace(0, np.nan)
df['Close date_ts_ms'] = df['Close date_ts_ms'].replace(0, np.nan)

说明:

  • datetime64[ns]类型底层本身存储的就是纳秒级整数时间戳,直接读取底层数值做精度缩放即可,性能远高于逐行遍历操作
  • 不需要保留原列的话,直接把结果赋值给原列名即可覆盖

方案2:转换为pandas.Timestamp对象类型

如果需要转为pandas自带的Timestamp对象格式,使用以下代码:

df['Open Date'] = df['Open Date'].apply(pd.Timestamp)
df['Close date'] = df['Close date'].apply(pd.Timestamp)

说明:

  • 本身datetime64[ns]类型的Series取单个值时默认就是pandas.Timestamp类型,该操作仅在你需要整列存储为object类型的Timestamp对象时使用,常规场景更推荐保留原生datetime64[ns]类型,性能和兼容性更好

结果验证方法

# 查看转换后的列数据类型
print(df[['Open Date', 'Close date']].dtypes)

# 查看前5行转换结果对比
print(df[['Open Date', 'Open Date_ts_ms', 'Close date', 'Close date_ts_ms']].head())

内容的提问来源于stack exchange,提问作者holguinmora

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 06:36:05