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

当DataFrame行中字符串匹配列名时,向对应列写入值1

解决方案

你可以通过pandas的索引定位或哑变量生成两种方式实现需求,具体如下:

方法一:直接索引赋值(简洁高效)

利用行索引和string列的列名直接定位目标位置,将对应单元格设为1:

import pandas as pd

# 构造原始DataFrame
df = pd.DataFrame(0, index=[0,1,2,3], columns=["string","a","b","c","d"])
df["string"] = ["b", "b", "c", "a"]

# 定位对应行和列,赋值为1
df.loc[df.index, df["string"]] = 1

print(df)

运行输出:

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

方法二:哑变量生成(适配扩展场景)

如果需要处理更多类别或标准化输出,可通过get_dummies生成哑变量矩阵,再与原数据合并:

import pandas as pd

df = pd.DataFrame(0, index=[0,1,2,3], columns=["string","a","b","c","d"])
df["string"] = ["b", "b", "c", "a"]

# 基于string列生成哑变量
dummies = pd.get_dummies(df["string"])
# 合并原string列与哑变量,对齐原DataFrame列顺序
result = pd.concat([df["string"], dummies], axis=1).reindex(columns=df.columns, fill_value=0)

print(result)

该方法会自动适配string列中出现的所有列名,后续新增列时无需修改逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 18:58:05