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

如何筛选DataFrame并将指定ID_2对应的Value转为新列

解决DataFrame筛选与列转置问题

原始数据集

IDID_2Value
1234100
1256200
1278300

需求说明

  • 筛选出ID_2取值为34、56、78的行
  • 将每个ID_2对应的Value值转为独立列,最终得到指定结构的DataFrame

实现代码

import pandas as pd

# 初始化原始DataFrame
df = pd.DataFrame({
    'ID': [12, 12, 12],
    'ID_2': [34, 56, 78],
    'Value': [100, 200, 300]
})

# 1. 筛选目标行
target_id2 = [34, 56, 78]
filtered_df = df[df['ID_2'].isin(target_id2)]

# 2. 转置为多列并自定义列名
result = filtered_df.pivot(index='ID', columns='ID_2', values='Value').reset_index()
result.columns = ['ID', 'New column', 'New column_2', 'New column_3']

print(result)

代码说明

  • 筛选逻辑:利用isin()方法快速匹配ID_2在目标列表中的记录,精准过滤数据;
  • 列转置:pivot()方法通过指定index(分组依据ID)、columns(转置的列ID_2)、values(取值列Value),实现行转列;
  • 列名调整:将pivot生成的默认列名(原ID_2的数值)替换为需求中的自定义名称,reset_index()确保ID作为普通列存在。

最终输出结果

IDNew columnNew column_2New column_3
12100200300

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 03:52:48