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

如何为pd.to_datetime指定自定义日期 解决多CSV时间列补全日期不符问题

实现方法

你需要在读入每个CSV文件时就绑定对应日期,再做时间格式转换,具体实现代码如下:

from datetime import datetime, timedelta
import pandas as pd

# 构造日期与对应文件的映射关系
today = datetime.now()
file_info_list = [
    # 格式:(对应日期字符串, 文件路径)
    (today.strftime('%Y-%m-%d'), f"{today.strftime('%Y-%m-%d')}.csv"),
    ((today + timedelta(days=1)).strftime('%Y-%m-%d'), f"{(today + timedelta(days=1)).strftime('%Y-%m-%d')}.csv")
]

processed_dfs = []
for target_date, csv_path in file_info_list:
    # 读取单份CSV
    tmp_df = pd.read_csv(csv_path)
    # 主动拼接指定日期与时分秒后再转datetime格式
    tmp_df['time'] = pd.to_datetime(target_date + ' ' + tmp_df['time'], errors='coerce')
    processed_dfs.append(tmp_df)

# 合并所有处理完成的数据
final_data = pd.concat(processed_dfs, ignore_index=True)

逻辑说明

  • 原有代码的问题在于先合并了不同日期的CSV再做时间转换,pd.to_datetime无法区分不同行所属的文件日期,遇到仅含时分秒的时间字符串时会统一用当前系统日期补全,导致次日文件的时间日期错误。
  • 上述方案在读取单份CSV时就为其绑定对应日期,主动拼接日期和时间字符串后再转换格式,完全避免默认补全逻辑带来的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:27:04