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

如何用Pandas直接处理显示为DD/MM但含完整日期的CSV文件?

用Pandas处理显示为DD/MM的日期列(实际含年份)

完全可以用Pandas直接处理,无需转成XLSX格式,以下分两种常见场景给出解决方案:

场景1:CSV中的日期是Excel日期序列号(显示为DD/MM)

如果你的CSV是从Excel导出的,日期列实际存储的是Excel日期数值(比如45387对应2024/03/28),只是Excel将其格式化为DD/MM显示,可直接解析为完整日期:

import pandas as pd

# 读取CSV,注意分隔符是分号(匹配你的示例数据)
df = pd.read_csv('your_file.csv', sep=';')

# 将第一列转换为datetime,使用Excel的1900日期基准
df.iloc[:, 0] = pd.to_datetime(df.iloc[:, 0], unit='D', origin='1899-12-30')

# 可选:将日期格式化为DD/MM/YYYY的字符串形式
df.iloc[:, 0] = df.iloc[:, 0].dt.strftime('%d/%m/%Y')

场景2:CSV中的日期是DD/MM字符串,需补充已知年份

如果CSV里的日期确实是DD/MM字符串,但你清楚每个日期对应的年份(可从文件元数据、其他列或上下文获取),可以拼接年份后转换为完整日期:

import pandas as pd

df = pd.read_csv('your_file.csv', sep=';')

# 拼接年份(这里以2024为例,若年份不固定可根据逻辑动态赋值)
df.iloc[:, 0] = pd.to_datetime(df.iloc[:, 0] + '/2024', format='%d/%m/%Y')

# 可选:格式化为需要的字符串形式
df.iloc[:, 0] = df.iloc[:, 0].dt.strftime('%d/%m/%Y')

验证步骤

读取后可先查看原始数据,确认日期列的实际类型:

print(df.iloc[:, 0].head())

如果输出是数值,说明是Excel日期序列号,用场景1处理;如果是DD/MM字符串,用场景2补充年份即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 09:20:19