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

如何在Pandas DataFrame中高效将字符串时间转为毫秒级epoch时间戳

高效转换Pandas DataFrame时间列为毫秒级Epoch时间戳

嘿,完全不用手动迭代列表!Pandas有专门的向量化操作来处理这种需求,速度快还简洁,给你两种实用的方法:

方法一:利用pd.to_datetime + astype

这是最直观且易读的方式,适合大多数场景:

  1. 首先把Time列的字符串转换成Pandas的datetime类型(Pandas能自动识别你这种ISO格式的时间字符串)
  2. 将datetime对象转为纳秒级整数,再除以10^6得到毫秒级时间戳

代码示例:

import pandas as pd

# 构造你的DataFrame
df = pd.DataFrame({
    'Time': ['2018-03-30T14:18:49.600', '2018-03-30T14:18:49.800', '2018-03-30T14:18:50.000'],
    'User': ['U101', 'U102', 'U101'],
    'value': [23, 22, 24]
})

# 转换时间列并生成毫秒级epoch戳
df['Time'] = pd.to_datetime(df['Time'])
df['epoch_ms'] = df['Time'].astype('int64') // 10**6

执行后你会得到新的epoch_ms列,值分别是1522424329600、1522424329800、1522424330000,完全符合需求。

方法二:底层numpy数组视图(更高效)

如果你的数据集特别大,想要极致性能,可以直接操作底层的numpy数组:

df['epoch_ms'] = df['Time'].values.view('int64') // 10**6

这个方法跳过了Pandas的一些包装层,直接把datetime对象的底层纳秒数值转成整数,速度比astype略快一点,适合百万级以上的数据集。

关键优势

这两种方法都是向量化操作,比你之前的逐行迭代效率高几个数量级——Pandas的向量操作是用C语言实现的,避免了Python循环的开销,处理大数据时差距特别明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:09:06