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

Python:如何将合并生成的Datetime类型转换为整数?

解决Datetime转整数的问题

你原来的代码失败是因为df['datetime']是pandas的Series对象,不能直接用int(float())这种方式批量转换,得用pandas针对datetime类型的专用方法。下面给你几种可行的方案:

方案1:转成Unix时间戳(整数,单位秒)

Unix时间戳是从1970-01-01 00:00:00 UTC到目标时间的秒数,适合计算时间差或取起止值:

# 两种写法效果一致
df['wtime'] = df['datetime'].astype('int64') // 10**9
# 或者更直观的写法
df['wtime'] = df['datetime'].dt.floor('s').astype('int64') // 10**9

方案2:转成毫秒级Unix时间戳(整数,单位毫秒)

如果需要更高精度,直接取datetime的int64表示(pandas内部用纳秒存储,转成毫秒就是除以1e6):

df['wtime'] = df['datetime'].astype('int64') // 10**6
# 或者直接保留纳秒级(数值会非常大)
df['wtime'] = df['datetime'].astype('int64')

方案3:转成YYYYMMDDHHMMSS格式的整数

如果需要的是像20240520143025这种直观的日期时间整数:

df['wtime'] = df['datetime'].dt.strftime('%Y%m%d%H%M%S').astype(int)

获取起止时间

转成整数后,直接用min和max就能拿到数据集的起始和结束时间对应的整数值:

start_time = df['wtime'].min()
end_time = df['wtime'].max()

其实也可以直接用datetime列取起止时间,再转成你需要的整数格式:

start_datetime = df['datetime'].min()
end_datetime = df['datetime'].max()
# 转成秒级时间戳
start_wtime = start_datetime.astype('int64') // 10**9
end_wtime = end_datetime.astype('int64') // 10**9

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 10:53:26