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

如何在Pandas DataFrame中从制表符分隔的时间列提取年月日时分秒?

解决Pandas时间列转换与时间字段提取问题

嘿,我来帮你搞定这个需求!咱们分两步走:先把YMD-Time列正确转换成datetime格式,再提取年、月、日等单独字段~

第一步:高效转换时间列为datetime类型

你原来用apply+datetime.strptime的方式也能工作,但Pandas自带的pd.to_datetime效率更高(尤其是数据量大的时候),而且写法更简洁。注意你的时间列是制表符(\t)分隔的,所以格式字符串要准确对应:

import pandas as pd

# 替换成你的实际DataFrame名称
df['TIMESTAMP'] = pd.to_datetime(df['YMD-Time'], format='%Y\t%m\t%d\t%H\t%M\t%S')

如果你的数据里有格式不规范的行,可以加上errors='coerce'参数,把无效值转为NaT(Pandas的缺失时间值),方便后续处理:

df['TIMESTAMP'] = pd.to_datetime(df['YMD-Time'], format='%Y\t%m\t%d\t%H\t%M\t%S', errors='coerce')

第二步:提取年、月、日、时、分、秒到单独列

转换完成后,Pandas的datetime列有一个dt属性,可以直接访问各种时间组件,一行代码就能提取一个字段:

# 提取各时间字段
df['YEAR'] = df['TIMESTAMP'].dt.year
df['MONTH'] = df['TIMESTAMP'].dt.month
df['DAY'] = df['TIMESTAMP'].dt.day
df['HOUR'] = df['TIMESTAMP'].dt.hour
df['MINUTE'] = df['TIMESTAMP'].dt.minute
df['SECOND'] = df['TIMESTAMP'].dt.second

这样操作完,你的DataFrame就会新增YEAR、MONTH等6个单独的时间字段啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:31:23