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

如何绘制Pandas DataFrame中指定行的A列月度变化折线图

问题描述

现有如下结构的Pandas DataFrame:

A_month1  A_month2  B_month1 B_month2
Train1         1         9         6        3
Train2         7         0         3        9
Train3         4         2         0        2

需要绘制折线图,展示每个Train对应的A指标从month1到month2的变化:

  • 包含Train1、Train2、Train3三条折线
  • X轴为month1、month2
  • Y轴范围固定为0到10
解决方案

核心是调整数据结构,让月份作为X轴维度,每个Train对应独立折线系列,具体实现步骤如下:

  1. 提取A相关列:筛选出A_month1和A_month2列,忽略B类数据
  2. 简化列名:将列名重命名为month1和month2,方便X轴显示
  3. 转置数据:互换行与列,让月份成为索引(对应X轴),Train名称成为列(对应每条折线)
  4. 绘制折线图:利用Pandas的plot方法直接绘图,同时设置Y轴范围、标题等参数

完整代码示例:

import pandas as pd
import matplotlib.pyplot as plt

# 构造示例DataFrame
data = {
    "A_month1": [1, 7, 4],
    "A_month2": [9, 0, 2],
    "B_month1": [6, 3, 0],
    "B_month2": [3, 9, 2]
}
df = pd.DataFrame(data, index=["Train1", "Train2", "Train3"])

# 提取A相关列并简化列名
a_df = df[["A_month1", "A_month2"]].rename(columns={"A_month1": "month1", "A_month2": "month2"})

# 转置数据,让月份作为X轴
a_df_transposed = a_df.T

# 绘制折线图
a_df_transposed.plot(kind="line", ylim=(0, 10), figsize=(8, 5))
plt.title("A指标从month1到month2的变化")
plt.xlabel("月份")
plt.ylabel("数值")
plt.legend(title="Train")
plt.show()

代码说明:

  • 转置后的数据结构中,每一列对应一个Train的数值序列,Pandas会自动为每一列生成一条折线
  • ylim=(0,10)参数直接固定Y轴范围
  • 通过legend和title可优化图表可读性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 17:15:05