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

当多字符字符串中类别为单字符时,基于Pandas Series生成哑变量的最简方法

把Pandas Series中多字符字符串的单个字符转成哑变量的简洁方法

嘿,这个需求我太熟了!其实用Pandas自带的字符串方法就能一行搞定,完全不需要复杂的循环或者额外的处理逻辑。

核心方法:str.get_dummies(sep='')

Pandas的str.get_dummies本来是用来处理带分隔符的字符串生成哑变量的,只要把分隔符sep设为空字符串,它就会自动把每个字符串拆成单个字符,然后为每个出现过的字符生成对应的哑变量列——存在该字符的行标1,不存在则标0。

完整示例

先看一个实际的例子,假设我们有这样的Series:

import pandas as pd

# 示例数据,包含不同长度的多字符字符串,甚至空字符串
s = pd.Series(['abc', 'abd', 'a', 'bc', ''])

直接一行代码生成哑变量:

dummy_df = s.str.get_dummies(sep='')

输出结果如下:

a  b  c  d
0  1  1  1  0
1  1  1  0  1
2  1  0  0  0
3  0  1  1  0
4  0  0  0  0

额外说明

  • 如果你的Series里有非字符串类型的数据,记得先转成字符串:s = s.astype(str)
  • 就算字符串里有重复字符(比如'aab'),这个方法也会自动处理为“存在即1”,完全符合哑变量的定义;如果需要统计字符出现次数,可以改用其他方法,但这个场景下str.get_dummies(sep='')是最优解
  • 所有出现过的单个字符都会成为独立的列,不管是字母、数字还是特殊符号

这个方法绝对是最简洁的,完全利用Pandas的内置功能,代码少且可读性高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:55:21