如何用Power Query将含多值的单列数据转为独热编码?
多值列转独热编码(Power Query/Python双方案)
Power Query 操作步骤
- 导入数据:选中Excel目标表格,点击「数据」→「从表格/区域」进入Power Query编辑器。
- 拆分列并展开为行:选中
Segments列,点击「转换」→「拆分列」→「按分隔符」,选择;作为分隔符,拆分方式选「拆分为行」(这是避免重复列报错的关键)。 - 清理文本:如果拆分后的
Segments存在首尾空格,选中该列,点击「转换」→「格式」→「修剪」。 - 添加标记列:点击「添加列」→「自定义列」,输入公式
=1,将新列命名为「标记值」。 - 透视生成独热列:选中
ID列,点击「转换」→「透视列」,设置:- 值列:选择「标记值」
- 高级选项:选择「不要聚合」(或「计数」,结果一致)
- 填充空值:选中所有生成的Segments列,点击「转换」→「替换值」,将
null替换为0。 - 导出结果:点击「关闭并上载」,将转换后的数据加载回Excel。
Python(Pandas)代码实现
如果Power Query操作觉得繁琐,用Pandas可以快速完成:
import pandas as pd # 读取Excel文件 df = pd.read_excel("你的文件路径.xlsx") # 按分号拆分并生成独热编码 one_hot = df["Segments"].str.get_dummies(sep=";") # 合并ID列与独热编码结果,空值填0并转为整数 final_df = pd.concat([df["ID"], one_hot], axis=1).fillna(0).astype(int) # 保存转换后的数据 final_df.to_excel("转换结果.xlsx", index=False)
内容的提问来源于stack exchange,提问作者Dcortez
相关产品推荐
相关产品推荐

