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

使用Pandas将字符串列转为多列布尔值的优雅实现方法

分类列转布尔值列的优雅实现方案

问题场景

给定如下原始DataFrame:

import pandas as pd
df = pd.DataFrame({'my_col' : ['red', 'red', 'green']})

对应数据:

my_col
red
red
green

期望转换为包含布尔值列的DataFrame:

df2 = pd.DataFrame({'red' : [True, True, False], 'green' : [False, False, True]})

对应数据:

redgreen
TrueFalse
TrueFalse
FalseTrue

请问是否有优雅的实现方式?

实现方案

直接使用pandas内置的pd.get_dummies()方法,指定dtype=bool即可一行完成转换,这是最简洁高效的方案:

df2 = pd.get_dummies(df['my_col'], dtype=bool)

执行后得到的结果完全符合预期:

red  green
0   True  False
1   True  False
2  False   True

如果需要严格指定输出列的顺序,可以传入columns参数显式定义:

df2 = pd.get_dummies(df['my_col'], columns=['red', 'green'], dtype=bool)

不过在这个场景下,默认的排序已经满足需求,因此第一种写法足够优雅。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 06:35:19