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

如何使用pandas将同列内不同类型数据拆分到独立列并按ID绘图

实现方案

1. 读取数据源

首先读取分号分隔的结构化数据:

import pandas as pd
import matplotlib.pyplot as plt

# 本地csv文件读取方式
df = pd.read_csv("你的文件存储路径.csv", sep=";")

2. 拆分不同ID的独立数据集

提供两种实现方案,可根据实际场景选择:

方案1:固定ID手动筛选(适合ID取值固定且数量少的场景)

直接按ID字段筛选生成两个独立DataFrame:

df_id123 = df[df["ID"] == 123].reset_index(drop=True)
df_id456 = df[df["ID"] == 456].reset_index(drop=True)

方案2:分组批量处理(适合ID取值多、后续会新增ID的场景)

用分组逻辑批量获取所有ID的独立数据集:

id_groups = df.groupby("ID")

3. 生成独立可视化图表

对应方案1的绘图代码

# 绘制ID=123的独立图表
plt.figure(figsize=(8,4))
# 可替换为你需要的折线图、散点图等其他图表类型
plt.bar(df_id123["position"], df_id123["Number"])
plt.title("ID 123 数据图表")
plt.savefig("id123_chart.png")
plt.show()

# 绘制ID=456的独立图表
plt.figure(figsize=(8,4))
plt.bar(df_id456["position"], df_id456["Number"])
plt.title("ID 456 数据图表")
plt.savefig("id456_chart.png")
plt.show()

对应方案2的批量绘图代码

for id_value, group_df in id_groups:
    plt.figure(figsize=(8,4))
    plt.bar(group_df["position"], group_df["Number"])
    plt.title(f"ID {id_value} 数据图表")
    plt.savefig(f"id{id_value}_chart.png")
    plt.show()

附加:将不同ID数据拆分到同一表格的独立列

如果需要把不同ID的数值拆分到同一个表的不同列存储,可使用透视表实现:

df_pivot = df.pivot_table(
    index=df.groupby("ID").cumcount(),
    columns="ID",
    values=["Number", "position"],
    aggfunc="first"
)
# 重命名列名方便调用,最终生成Number_id_123、position_id_123、Number_id_456、position_id_456四个独立列
df_pivot.columns = [f"{col[0]}_id_{col[1]}" for col in df_pivot.columns]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:12:03