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

如何将数据框中逗号分隔的因子拆分为哑变量列?(支持R/Python/Power BI)

拆分逗号分隔因子为哑变量列的解决方案

下面针对Python、R、Power BI分别提供实现方法,满足将逗号分隔的因子拆分至独立列、无对应因子单元格留空的需求:

Python(Pandas)

使用pandas的str.get_dummies方法快速生成哑变量,可将0替换为空字符串以符合留空要求:

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    '饮品类型': ['伏特加', '金酒', '威士忌'],
    '消费场景': ['At a pub, At home', 'At home', 'At a pub, Outdoor']
})

# 按逗号拆分并生成哑变量,将0替换为空
dummies = df['消费场景'].str.get_dummies(sep=', ').replace(0, '')

# 合并回原数据集
final_df = pd.concat([df, dummies], axis=1)
print(final_df)

R(tidyverse)

借助tidyverse工具链的separate_rows和pivot_wider实现行转列,空值直接留空:

library(tidyverse)

# 构造示例数据
df <- tibble(
  饮品类型 = c('伏特加', '金酒', '威士忌'),
  消费场景 = c('At a pub, At home', 'At home', 'At a pub, Outdoor')
)

# 拆分因子到行,再转宽为列并留空无对应值的单元格
final_df <- df %>%
  separate_rows(消费场景, sep = ', ') %>%
  mutate(标记 = 1) %>%
  pivot_wider(names_from = 消费场景, values_from = 标记, values_fill = '')

print(final_df)

Power BI

通过Power Query可视化操作完成拆分:

  1. 加载数据后进入Power Query编辑器,选中目标列(如「消费场景」)。
  2. 点击「转换」选项卡 → 「拆分列」→ 「按分隔符」,选择逗号,勾选「拆分为行」。
  3. 添加自定义列(命名为「标记」),值设为1。
  4. 选中「饮品类型」「消费场景」「标记」列,点击「转换」→ 「透视列」,值列选择「标记」,高级选项选「不要聚合」,空值保留为空。
  5. 关闭并应用,即可得到拆分后的哑变量列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:30:48