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

如何用Pandas将多维数据转换为时间序列并绘制图表?

用Pandas处理多维度时间序列并绘图

我有如下格式的数据:

Timestamp, Dimension, Value
t1, d1, v1
t2, d1, v2
t3, d1, v3
...
tn, d2, v4
tn+1, d2, v4
...
tm, d1, v5
...

能否通过Pandas将其转换为多组时间序列,以Timestamp为X轴、Value为Y轴绘制d1、d2……dn的图表?

更新:df.head().to_dict()的输出如下:

{'Timestamp': {0: 1696603859.706954, 1: 1696603859.707053, 2: 1696603859.707162, 3: 1696603859.707236, 4: 1696603859.707281}, 
 ' Dim': {0: 'WT', 1: 'WH-0x00', 2: 'WH-0x80', 3: 'WH-Others', 4: 'WT-0x00'}, 
 ' Value': {0: 24, 1: 1, 2: 1, 3: 1, 4: 41}, 
 ' Count': {0: 24, 1: 44, 2: 44, 3: 44, 4: 44}}

完全可以实现,以下是具体步骤:

1. 数据预处理

首先读入数据并清理格式,注意你的列名带有首尾空格(比如' Dim'、' Value'),需要先处理:

import pandas as pd
import matplotlib.pyplot as plt

# 读入CSV数据(如果是其他格式,替换对应读取方法)
df = pd.read_csv('your_data_file.csv')

# 清理列名,去掉首尾空格
df.columns = df.columns.str.strip()

# 将时间戳转换为可识别的datetime格式
df['Timestamp'] = pd.to_datetime(df['Timestamp'], unit='s')

2. 转换为多列时间序列格式

使用pivot方法把不同维度转成独立列,时间戳作为索引:

# 转换为宽格式:时间戳为索引,每个维度对应一列数值
wide_df = df.pivot(index='Timestamp', columns='Dim', values='Value')

转换后,每个维度(如WT、WH-0x00)会成为单独的列,每一行对应一个时间点的各维度数值。

3. 绘制多维度时间序列图

直接利用Pandas的绘图接口快速生成图表,也可以用matplotlib自定义样式:

# 绘制图表,设置画布大小和标签
wide_df.plot(figsize=(12, 6), xlabel='时间', ylabel='数值')
plt.title('各维度时间序列变化趋势')
plt.legend(title='维度')
plt.show()

补充:处理缺失值

如果转换后存在NaN(部分时间点某些维度无数据),可以根据需求填充,比如前向填充:

wide_df = wide_df.fillna(method='ffill')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 22:47:23