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

Python Pandas如何对DataFrame分组,将列唯一值转为编号命名的新列

Pandas 按分组拆分val列为多列的实现方案

依赖导入

import pandas as pd

示例数据构造(可跳过,直接替换为你的实际数据)

df = pd.DataFrame({
    'case': [0,0,0,1,1,2],
    'val': ['x','y','z','x','z','y']
})

核心实现代码

# 生成val全局唯一值到列编号的映射
# 如需保持val在原数据中第一次出现的顺序,可去掉.sort_values()
val_unique = df['val'].sort_values().unique()
val_map = {val: idx for idx, val in enumerate(val_unique)}

# 给每行数据标记对应的目标列编号
df['col_idx'] = df['val'].map(val_map)

# 透视转换结构,重命名列得到目标结果
df1 = df.pivot(index='case', columns='col_idx', values='val')\
        .add_prefix('val')\
        .reset_index()\
        .rename_axis(columns=None)

执行后输出的df1即为符合要求的结果,缺失值会自动填充为NaN。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 17:45:01