You need to enable JavaScript to run this app. 如何从pandas DataFrame生成下划线分隔的复合名称列表
优惠活动
大模型
产品
解决方案
定价
更多

如何从pandas DataFrame生成下划线分隔的复合名称列表

解决方案

实现逻辑

选取ID、Gender、Classes三列的逐行对应值,以下划线为分隔符拼接后转为列表即可,以下提供两种常用实现方案:

方案1:str.cat拼接(性能优先)

该方案底层使用向量化运算,数据量较大时运行效率更高:

import pandas as pd   
data = {'ID':['HA12','HA12','HA12','HA20', 'HA20' ], 'Age': [20, 20, 20, 25, 25], 'Gender': ['M','M','M','F','F'], 'Classes':['Maths', 'Biology', 'Chemistry', 'Maths', 'English' ]}   
df = pd.DataFrame(data)

# 核心拼接代码
col_name_list = df['ID'].str.cat([df['Gender'], df['Classes']], sep='_').tolist()
print(col_name_list)

运行输出结果:
['HA12_M_Maths', 'HA12_M_Biology', 'HA12_M_Chemistry', 'HA20_F_Maths', 'HA20_F_English']

方案2:apply自定义拼接(灵活性优先)

该方案支持自定义拼接规则,后续要调整拼接字段、分隔规则时修改成本更低:

import pandas as pd   
data = {'ID':['HA12','HA12','HA12','HA20', 'HA20' ], 'Age': [20, 20, 20, 25, 25], 'Gender': ['M','M','M','F','F'], 'Classes':['Maths', 'Biology', 'Chemistry', 'Maths', 'English' ]}   
df = pd.DataFrame(data)

# 核心拼接代码
col_name_list = df.apply(lambda x: f"{x['ID']}_{x['Gender']}_{x['Classes']}", axis=1).tolist()
print(col_name_list)

运行输出结果和方案1完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 18:54:07