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

使用Pandas对DataFrame进行分组与部分转置

解决方案

可以通过 pandas 的 groupby、melt 和 pivot 组合操作实现需求,具体步骤如下:

1. 构造示例数据

import pandas as pd

df = pd.DataFrame({
    'Type': ['A', 'A', 'B', 'B'],
    'Parameter 1': [1, 3, 2, 4],
    'Parameter 2': [2, 10, 5, 8],
    'Parameter 3': [4, 1, 9, 2]
})

2. 为每组内的行添加序号

给同一 Type 下的行标记序号,用于后续转置时区分不同的 Value 列:

df['value_id'] = df.groupby('Type').cumcount() + 1

3. 转置参数列(宽表转长表)

用 melt 将 Parameter 1-3 列转为行,保留 Type 和序号信息:

melted_df = df.melt(id_vars=['Type', 'value_id'], var_name='Params', value_name='Value')

4. 转置回宽表得到目标结构

通过 pivot 将序号转为列,再重置索引并整理列名:

result_df = melted_df.pivot(index=['Type', 'Params'], columns='value_id', values='Value').reset_index()
result_df.columns = ['Type', 'Params', 'Value 1', 'Value 2']

5. 处理Type列的重复显示

让同一 Type 仅在第一行显示,其余行留空:

result_df['Type'] = result_df['Type'].mask(result_df['Type'].duplicated(), '')

最终得到的结果与示例表格完全一致:

TypeParamsValue 1Value 2
AParameter 113
Parameter 2210
Parameter 341
BParameter 124
Parameter 258
Parameter 392

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:05:16