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

基于值拆分Pandas列表列至多列,返回指定标识值

Pandas将列表列拆分为带自定义值的多列

示例输入

idvalues
1[A,B,C,D]
2[D,E,F]
3[A,D]
4[K]

预期输出

idvaluesABCDEFK
1[A,B,C,D]yes_Ayes_Byes_Cyes_Dno_Eno_Fno_K
2[D,E,F]no_Ano_Bno_Cyes_Dyes_Eyes_Fno_K
3[A,D]yes_Ano_Bno_Cyes_Dno_Eno_Fno_K
4[K]no_Ano_Bno_Cno_Dno_Eno_Fyes_K

实现代码

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({
    'id': [1, 2, 3, 4],
    'values': [['A', 'B', 'C', 'D'], ['D', 'E', 'F'], ['A', 'D'], ['K']]
})

# 提取所有唯一的类别元素并排序
all_categories = sorted({item for sublist in df['values'] for item in sublist})

# 为每个类别生成对应列,填充自定义yes/no值
for cat in all_categories:
    df[cat] = df['values'].apply(lambda x: f'yes_{cat}' if cat in x else f'no_{cat}')

# 调整列顺序,与预期输出对齐(可选)
df = df[['id', 'values'] + all_categories]

print(df)

代码说明

  1. 先构造与输入一致的示例数据;
  2. 通过集合推导式提取所有列表中的唯一元素,排序后保证列顺序稳定;
  3. 遍历每个类别元素,用apply判断当前行的列表是否包含该元素,返回对应的yes_xxx或no_xxx;
  4. 可选调整列顺序,让结果列排列和预期输出一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 04:45:32