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

Python Notebook解析Twitter日期并提取时间戳与AM/PM标识

解决Twitter日期格式解析与时间提取问题

嘿,我来帮你搞定这个Twitter日期处理的问题~首先先揪出你代码里的小疏漏:你写的spear['ModDate'] = parser.parse(separ['created_at'])里,spear和separ应该是同一个DataFrame的名字吧?这大概率是拼写错误,导致代码没生效哦!

接下来我给你两种高效的处理方式,帮你解析日期并提取需要的时间戳和AM/PM标识:

方法一:用Pandas内置to_datetime(推荐,批量处理更快)

Pandas的to_datetime专门用来处理批量日期数据,比逐行调用parser.parse高效太多,步骤如下:

  1. 先解析日期列,生成datetime类型的新列:
import pandas as pd

# 假设你的DataFrame名为df,日期列是'created_at'
df['ModDate'] = pd.to_datetime(df['created_at'], format='%a %b %d %H:%M:%S %z %Y')

这里的format参数完全匹配你的Twitter日期格式:

  • %a:缩写星期(比如Sat)
  • %b:缩写月份(比如Apr)
  • %d:两位日期(比如07)
  • %H:24小时制小时(比如16)
  • %M:分钟
  • %S:秒
  • %z:时区偏移(比如+0000)
  • %Y:四位年份(比如2018)
  1. 提取你需要的时间相关字段:
  • 提取带AM/PM的12小时制完整时间戳:
df['Time_with_AMPM'] = df['ModDate'].dt.strftime('%I:%M:%S %p')
# 示例输出:04:49:49 PM
  • 单独提取AM/PM标识:
df['AMPM'] = df['ModDate'].dt.strftime('%p')
# 示例输出:PM
  • 如果需要24小时制时间戳,直接用:
df['Time_24h'] = df['ModDate'].dt.strftime('%H:%M:%S')
# 示例输出:16:49:49

方法二:用dateutil.parser处理(适合单个元素,批量建议用方法一)

如果你坚持要用dateutil.parser,需要用apply遍历整个列处理,同时修正拼写错误:

from dateutil import parser

# 确保DataFrame名称一致,比如都用df
df['ModDate'] = df['created_at'].apply(lambda x: parser.parse(x))
# 后续同样用dt.strftime提取时间和AM/PM
df['Time_with_AMPM'] = df['ModDate'].dt.strftime('%I:%M:%S %p')
df['AMPM'] = df['ModDate'].dt.strftime('%p')

为什么你的原代码没生效?

除了拼写错误,核心问题是parser.parse只能处理单个字符串,不能直接作用于Pandas的Series(也就是整列数据),必须用apply或者Pandas的内置方法来批量处理。

这样操作后,你就能轻松得到需要的时间戳和AM/PM标识啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:22:30