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
相关产品推荐
相关产品推荐

