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

如何使用Pandas新增Drug_Name列并赋值为对应值为Y的列名

实现方法

首先你需要先整理出所有毒品类别对应的列名列表,替换下方代码中的示例列名即可。

单Y值场景(每行只有一个毒品列的值为Y)

这是效率最高的写法:

import pandas as pd

# 1. 替换成你数据表中实际的所有毒品类别列名
drug_cols = ['Cocaine', 'Heroin', 'Marijuana', 'Methamphetamine']

# 2. 生成Drug_Name列
df['Drug_Name'] = df[drug_cols].eq('Y').idxmax(axis=1)

多Y值场景(一行可能有多个毒品列的值为Y)

如果存在一行多Y的情况,可以将所有符合条件的列名用分隔符拼接:

df['Drug_Name'] = df[drug_cols].eq('Y').apply(
    lambda row: ','.join(row[row].index), 
    axis=1
)

补充说明

如果原毒品列名是小写格式(如cocaine),要输出首字母大写的格式,可以额外加一步格式处理:
df['Drug_Name'] = df['Drug_Name'].str.capitalize()


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:06:03