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

从CSV导入Python后,DataFrame日期索引部分日期解析错误

问题描述

我需要在Python中分析一个包含两列(时间戳Timestamp、均值Mean)的DataFrame,加载CSV的代码如下:

df = pd.read_csv('L_strom_30974_gerundet.csv', sep=';', names=['Timestamp', 'Mean'])
df['Timestamp'] = pd.to_datetime(df.Timestamp,format= '%d.%m.%y %H:%M', infer_datetime_format=True)
df.set_index('Timestamp', inplace=True)
df.index = pd.DatetimeIndex(df.index).to_period('15T')
df = df.sort_index()

遇到的问题:CSV原始日期范围仅为2009-01-01 00:00至2010-10-04 23:45,但导入后在绘图和df.info中出现了2010年11月、12月的日期:

PeriodIndex: 61628 entries, 2009-01-01 00:00 to 2010-12-09 23:45
Freq: 15T
Data columns (total 1 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   Mean    61628 non-null  float64
dtypes: float64(1)

CSV中未找到该时间段的数据,且df.info的条目数与CSV行数一致,推测是部分日期解析错误。导入后DataFrame的尾部数据如下:

Mean
Timestamp             
2010-12-09 22:45   186
2010-12-09 23:00   206
2010-12-09 23:15   168
2010-12-09 23:30   150
2010-12-09 23:45   132

想请教为何大部分日期解析正确,仅部分出错?


问题分析与解决建议

核心原因

你同时使用了format='%d.%m.%y %H:%M'和infer_datetime_format=True两个参数,这是矛盾的:

  • format参数是强制pandas用指定格式解析日期
  • infer_datetime_format=True会让pandas在按指定格式解析失败时,自动尝试推断其他日期格式

CSV中可能存在少数日期的格式和你指定的%d.%m.%y不匹配(比如部分行把日和月的顺序写反了,或者年份格式不一致),当这些行按指定格式解析失败时,pandas会自动推断格式,导致日期被错误解析成2010年11、12月的日期。

排查与解决步骤

  1. 关闭自动推断,强制指定格式
    修改日期解析代码,去掉infer_datetime_format=True,并添加errors='coerce'让解析失败的日期转为NaT(Not a Time),方便定位问题行:

    df['Timestamp'] = pd.to_datetime(df.Timestamp, format='%d.%m.%y %H:%M', errors='coerce')
    
  2. 定位错误行
    筛选出Timestamp为NaT的行,查看对应的原始日期字符串,就能找到格式不匹配的内容:

    bad_rows = df[df['Timestamp'].isna()]
    print(bad_rows)
    
  3. 修正解析规则
    根据找到的错误格式,调整解析逻辑:

    • 如果只是少数行格式错误,可以手动修正CSV中的内容
    • 如果存在多种格式,可以指定格式列表让pandas依次尝试:
      df['Timestamp'] = pd.to_datetime(df.Timestamp, format=['%d.%m.%y %H:%M', '%m.%d.%y %H:%M'], errors='coerce')
      
  4. 验证结果
    解析完成后,检查日期范围是否符合预期:

    print(df['Timestamp'].min(), df['Timestamp'].max())
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 00:15:41