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

Pandas基于列表生成新列,按值存在情况填充1或0

用Pandas实现Codes列的哑变量转换

假设你的数据已经存入DataFrame,以下是具体实现步骤:

  • 先构造示例数据(已有数据可跳过此步):
import pandas as pd

data = {
    'Codes': ['40.1, 54.06, 11.3', '50.64', '48.7, 40.1, 54.06', '35.2, 50.64']
}
df = pd.DataFrame(data)
  • 拆分Codes列并生成目标格式的哑变量:
# 将逗号分隔的字符串转为列表
df['Codes'] = df['Codes'].str.split(', ')

# 展开列表生成临时表,每行对应一个code
exploded_df = df.explode('Codes')

# 生成哑变量后按原行索引分组求和,同一行的多个code对应位置设为1
dummies = pd.get_dummies(exploded_df['Codes']).groupby(exploded_df.index).sum()

# 合并原数据与哑变量表,缺失值填充为0
result = pd.concat([df, dummies], axis=1).fillna(0)
  • 最终的result就是你需要的目标表格,每个唯一code对应一列,该行包含该code则填1,否则填0。

如果已经提前生成了唯一值列表,也可以用循环逐个判断:

# 假设已获取唯一值列表unique_codes
unique_codes = ['11.3', '35.2', '40.1', '48.7', '50.64', '54.06']

for code in unique_codes:
    df[code] = df['Codes'].apply(lambda x: 1 if code in x.split(', ') else 0)

这种方式逻辑更直观,适合数据量不大的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 22:12:09