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

将Pandas中逗号分隔的StuType列拆分为13个0/1二进制列

解决方案

先搞定Excel里的格式问题,再用Pandas生成目标列:

1. 修复Excel格式异常

先手动或用工具清理StuType列的排版问题:

  • 把数值前后的空格、全角逗号、换行符这类异常字符清掉,确保分隔符都是半角逗号
  • 确认ResponseID 8538、8562这类空值行的StuType列确实是空白,没有隐藏的特殊字符

2. Pandas代码实现

用@ouroboros1的方案适配你的场景,代码如下:

import pandas as pd

# 读取修复后的Excel文件
df = pd.read_excel("你的文件路径.xlsx")

# 处理空值和拆分列:把逗号分隔的字符串转成整数列表,空值转空列表
df['StuType'] = df['StuType'].fillna('').apply(
    lambda x: list(map(int, x.split(','))) if x.strip() else []
)

# 生成13个0/1标记列
for num in range(1, 14):
    df[f'StuType_{num}'] = df['StuType'].apply(lambda lst: 1 if num in lst else 0)

# 可选:删除临时处理的StuType列(如果不需要保留)
# df.drop('StuType', axis=1, inplace=True)

补充说明

之前其他方案失效,大概率是Excel里的格式脏数据导致的——比如带空格的数值、非标准分隔符,会让拆分后的列表包含无效值,判断逻辑出错。先把格式修干净,这个方案就能正常跑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 01:01:06