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

Pandas实现CSV中1900年起天数时间转带T的ISO8601格式

解决Pandas DateTime列转ISO8601格式(带T分隔符)的方法

你已经完成了从1900年天数到datetime类型的转换,接下来可以通过以下几种方法将Series转换为带T的ISO8601格式字符串:

方法1:使用dt.isoformat()(推荐)

这是最直接符合ISO8601标准的方法,通过Pandas的dt访问器调用datetime对象的isoformat()方法,自动生成带T分隔的格式,同时保留完整时间精度:

import pandas as pd

# 读取CSV并完成日期转换
df = pd.read_csv('myfile.csv')
df['DateTime'] = pd.to_datetime('1900-01-01') + pd.to_timedelta(df['DateTime'], 'D')

# 转换为ISO8601格式
df['DateTime'] = df['DateTime'].dt.isoformat()

运行后你的DateTime列会变成类似2019-06-07T14:54:17.230999464的格式,完全匹配需求。

方法2:自定义格式化字符串(适合精度调整)

如果需要手动控制时间精度(比如只保留微秒或秒),可以用dt.strftime()指定格式:

# 自定义ISO8601格式(保留微秒)
df['DateTime'] = df['DateTime'].dt.strftime('%Y-%m-%dT%H:%M:%S.%f')

注:%f代表6位微秒,若需要更高精度(如纳秒),建议使用方法1,因为strftime无法直接支持纳秒级格式化。

方法3:字符串替换法(简单直接)

如果是旧版本Pandas或需要快速处理,可先将datetime转为字符串,再把日期时间之间的空格替换为T:

# 转换为字符串后替换空格为T
df['DateTime'] = df['DateTime'].astype(str).str.replace(' ', 'T')

这种方法兼容性强,但要注意仅适用于Pandas默认的datetime字符串格式(日期时间用空格分隔)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 23:16:09