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

如何读取含毫秒级时间戳(DD.MM.YYYY hh:mm:ss:mmm)的CSV文件?

解决pandas read_csv无法解析带冒号分隔毫秒的日期格式问题

你的日期格式为DD.MM.YYYY HH:MM:SS:fff,由于毫秒部分用冒号而非标准小数点分隔,导致pandas默认解析器无法识别,最终索引为object类型。以下两种方法可以解决这个问题:

方法一:指定自定义日期解析函数

通过date_parser参数传入自定义函数,先将毫秒前的冒号替换为小数点,再按标准格式解析:

import pandas as pd
from datetime import datetime

def parse_date(date_str):
    # 仅替换最后一个冒号为小数点
    formatted_str = date_str.replace(':', '.', 2)
    return datetime.strptime(formatted_str, '%d.%m.%Y %H:%M:%S.%f')

testdf = pd.read_csv(
    'test.csv',
    index_col=0,
    header=0,
    parse_dates=True,
    dayfirst=True,
    date_parser=parse_date
)

方法二:直接指定日期格式字符串

利用date_format参数直接匹配你的日期格式,无需额外函数:

import pandas as pd

testdf = pd.read_csv(
    'test.csv',
    index_col=0,
    header=0,
    parse_dates=True,
    dayfirst=True,
    date_format='%d.%m.%Y %H:%M:%S:%f'
)

执行上述任意一种方法后,查看索引类型:

print(testdf.index)

会得到预期的*datetime64[ns]*类型的DatetimeIndex:

DatetimeIndex(['2019-03-18', '2019-06-19', '2019-09-10', '2019-12-16'], dtype='datetime64[ns]', name='date', freq=None)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 20:20:08