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

Python数据清洗:如何将带时区日期转换为仅年月日格式?

解决Python折线图X轴日期仅显示YYYY-MM-DD格式的问题

你可以通过两种方式实现需求:要么先清洗日期列生成仅含日期的字段,要么直接在绘图时配置X轴刻度格式。

方法一:先清洗日期列,再基于处理后的字段绘图

这种方式适合需要后续重复使用日期字段的场景,步骤如下:

  1. 导入依赖库并读取数据集:
import pandas as pd
import matplotlib.pyplot as plt

# 假设数据集已读取到df中
# df = pd.read_csv('你的数据集路径.csv')
  1. 将Formatted Date列转换为带时区的datetime类型,并提取日期部分:
# 转换为datetime类型(处理时区信息)
df['Formatted Date'] = pd.to_datetime(df['Formatted Date'], utc=True)

# 生成仅含日期的新列,格式为YYYY-MM-DD的字符串
df['Date'] = df['Formatted Date'].dt.strftime('%Y-%m-%d')
# 或者生成date对象(matplotlib也能识别)
# df['Date'] = df['Formatted Date'].dt.date
  1. 使用处理后的Date列绘制折线图:
plt.plot(df['Date'], df['目标数值列'])
plt.xlabel('日期')
plt.ylabel('数值')
# 可选:旋转X轴标签避免重叠
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

方法二:不修改原始数据,直接配置绘图时的X轴格式

如果不需要修改原始数据集,可直接通过matplotlib的日期格式化器设置刻度显示:

  1. 导入依赖库并转换日期列:
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter

# 转换日期列为datetime类型
df['Formatted Date'] = pd.to_datetime(df['Formatted Date'], utc=True)
  1. 绘制折线图并设置X轴格式:
fig, ax = plt.subplots()
ax.plot(df['Formatted Date'], df['目标数值列'])

# 设置X轴刻度显示为YYYY-MM-DD格式
date_formatter = DateFormatter('%Y-%m-%d')
ax.xaxis.set_major_formatter(date_formatter)

# 可选配置:旋转标签、调整布局
plt.xticks(rotation=45)
plt.xlabel('日期')
plt.ylabel('数值')
plt.tight_layout()
plt.show()

注意事项

  • 转换datetime时必须处理时区信息(utc=True或指定对应时区),否则可能导致日期解析错误或显示异常;
  • 如果你的日期列已经是datetime类型,可跳过转换步骤直接处理格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 16:20:42