加载含多层表头的时间序列DataFrame并转换为可绘图的长表格式
方案1:直接基于现有多层表头DataFrame绘图
如果仅需要快速查看单个整流器的电压/电流趋势、或所有整流器同一指标的分布,无需额外转换即可直接绘图,示例代码如下:
import pandas as pd import matplotlib.pyplot as plt # 示例:查看编号为R01的整流器的电流随时间变化趋势 df.loc['R01', pd.IndexSlice[:, 'Amps']].plot() plt.title('整流器R01电流变化趋势') plt.ylabel('电流(Amps)') plt.show()
注:代码中pd.IndexSlice用于多层索引筛选,第一个参数匹配第一级列(日期),第二个参数匹配第二级列(指标)
方案2:转换为长表格式(更推荐,适配绝大多数绘图、分析需求)
仅需几行代码即可完成格式转换,得到你需要的四字段长表结构:
# 堆叠多层列索引,将日期从列头转为行维度 df_long = df.stack(level=0, future_stack=True).reset_index() # 重命名列名 df_long.columns = ['Rectifier', 'Date', 'Volts', 'Amps'] # 可选:将日期列转为datetime格式,方便后续时间维度分析 df_long['Date'] = pd.to_datetime(df_long['Date'])
转换后使用任意可视化库绘图都非常便捷,例如用seaborn绘制所有整流器的电压趋势:
import seaborn as sns sns.lineplot(data=df_long, x='Date', y='Volts', hue='Rectifier') plt.show()
内容的提问来源于stack exchange,提问作者MasterStack880
相关产品推荐
相关产品推荐

