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

Pandas技术问题:合并日期时间后绘制与value值的关系图

解决Pandas中日期时间组合的绘图问题

没问题,我来帮你搞定这个需求!你需要把date和time合并成符合要求的日期时间格式,再用来做X轴绘制和value的关系图,具体步骤如下:

步骤1:处理时间列,合并成完整的datetime对象

你的time列是数字格式(比如515对应05:15,1014对应10:14),首先得把它转换成标准的时分格式,再和date列合并成Pandas的datetime类型:

import pandas as pd
import matplotlib.pyplot as plt

# 你的原始数据
raw_data = {'date': ['1975-07-03','1975-07-03','1975-07-04','1975-08-01'], 
            'time': [515,1014,1401,1201], 
            'value': [1,-1,2,11]}
df = pd.DataFrame(raw_data, columns = ['date', 'time', 'value'])

# 把time转成4位字符串(补前导零),再拆成时分
df['time_str'] = df['time'].astype(str).str.zfill(4)
df['hour'] = df['time_str'].str[:2]
df['minute'] = df['time_str'].str[2:]

# 合并date和时分,生成完整的datetime列
df['datetime'] = pd.to_datetime(df['date'] + ' ' + df['hour'] + ':' + df['minute'])

步骤2:生成需要的X轴显示格式

按照要求,把datetime转换成"月-日 时:分"的格式,用来作为X轴的标签:

df['x_label'] = df['datetime'].dt.strftime('%m-%d %H:%M')

步骤3:绘制关系图

现在就可以用matplotlib来绘制value和处理后的日期时间的关系图了,这里用折线图为例,你也可以换成散点图:

plt.figure(figsize=(10, 6))
plt.plot(df['x_label'], df['value'], marker='o', linestyle='-', color='b')

# 设置图表样式
plt.xlabel('Date-Time (Month-Day Hour:Minute)')
plt.ylabel('Value')
plt.title('Value vs Date-Time')
plt.xticks(rotation=45)  # 旋转X轴标签避免重叠
plt.tight_layout()  # 自动调整布局
plt.show()

简化版代码(合并步骤)

如果你觉得上面的步骤太繁琐,也可以用一行代码直接生成datetime列,省去中间的hour和minute列:

df['datetime'] = pd.to_datetime(df['date'] + ' ' + df['time'].astype(str).str.zfill(4).str.replace(r'(\d{2})(\d{2})', r'\1:\2', regex=True))
df['x_label'] = df['datetime'].dt.strftime('%m-%d %H:%M')

这样处理后,X轴就会显示成你需要的"月-日 时:分"格式,完美匹配你的需求啦!

内容的提问来源于stack exchange,提问作者F.M.R.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:59:23