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

使用Pandas读取Excel日期列用于绘图,是否需包含年份信息?

问题:无年份的日期列用于绘图是否必须包含年份?

问题背景

我编写了如下Python脚本:

import pandas as pd

def main():
    readExcelFile()

def readExcelFile():
    fileName = "abc.xlsx"
    data = pd.read_excel(fileName,engine='openpyxl')
    print(data['Date'])
    data['Date1'] = pd.to_datetime(data['Date'],format='%mm/%dd')
    print(data['Date1'])

main()

Excel文件中日期列内容为:

12/01
12/02
12/03
12/04 

但通过Pandas DataFrame输出后显示为:

2001-12-01
2002-12-01
2003-12-01
2004-12-01

日期类型为datetime64[ns],因Excel中无年份信息,Pandas自动添加了年份,导致显示的日期与原数据不符。基于@cottontail的评论,现询问:仅用于读取数据绘图、无需计算日期差时,包含日期列的Excel文件是否必须包含年份信息?

回答

不需要必须包含年份信息。

如果只是用于绘图,完全可以将日期列以字符串类型读取,这样能保留原始的MM/DD格式,避免Pandas自动补全年份。

具体修改方式:

  • 读取Excel时,通过dtype参数强制指定Date列为字符串类型:
data = pd.read_excel(fileName, engine='openpyxl', dtype={'Date': str})

后续绘图直接使用该字符串列即可,主流绘图库(如Matplotlib、Seaborn)会按原始顺序展示日期,完全满足绘图需求。

另外,若你想保留日期类型但不想让Pandas自动补全年份,也可以手动指定固定年份(比如2024),同时注意修正格式字符串(原代码中%mm/%dd是错误的,正确格式应为%m/%d):

data['Date1'] = pd.to_datetime('2024/' + data['Date'], format='%Y/%m/%d')

不过这种方式不如直接使用字符串简便,毕竟你不需要计算日期差,没必要转换为datetime类型。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 06:25:32