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

Python循环绘制多图问题:按ClientID筛选数据绘图失败

按ClientID单独生成对应图表

你的问题出在循环时没有筛选对应ClientID的子数据集,dfT1[:]仍然调用的是完整数据集,所以每张图都会显示全部数据。以下是两种修正方案:

方案一:直接遍历分组对象(推荐)

利用groupby对象可直接遍历的特性,每次取出对应ClientID的子数据进行绘图:

import matplotlib.pyplot as plt

# 按ClientID分组
clients = dfT1.groupby('ClientID')

# 遍历每个分组,client_id是分组键,group是对应ClientID的子数据集
for client_id, group in clients:
    group.plot(x='Dates', y=['DWLTActual', 'Weight'], figsize=(10,5), grid=True, title=f'ClientID: {client_id}')
    plt.show()

方案二:通过键筛选数据

保留你原来的键循环逻辑,通过布尔索引筛选出当前ClientID的行:

import matplotlib.pyplot as plt

clients = dfT1.groupby('ClientID')
keys = clients.groups.keys()

for i in keys:
    # 筛选当前ClientID对应的所有数据
    client_data = dfT1[dfT1['ClientID'] == i]
    client_data.plot(x='Dates', y=['DWLTActual', 'Weight'], figsize=(10,5), grid=True, title=f'ClientID: {i}')
    plt.show()

两种方案都能让每张图表只展示对应ClientID的数据,添加标题还能直观区分不同客户端的图表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 00:07:07