如何给Pandas DataFrame的Skill列每个技能随机添加等级标签
错误原因
- 代码存在语法错误:
df[Skill']缺少前单引号,运行会直接触发语法报错。 - 逻辑问题:没有拆分技能字符串里的单个技能项,直接对整段拼接好的技能字符串追加等级,所以只会在整段末尾加一个等级,不符合每个技能单独加等级的要求。
实现代码
首先导入依赖:
import pandas as pd import random
方案1:自定义函数实现(可读性更高)
score = ['low', 'medium', 'high'] def add_skill_level(skill_str): # 按分隔符拆分出单个技能 skill_list = skill_str.split(', ') # 遍历每个技能拼接随机等级 skill_with_level = [f"{skill}:{random.choice(score)}" for skill in skill_list] # 拼接回原格式的字符串 return ', '.join(skill_with_level) df['Skill'] = df['Skill'].apply(add_skill_level)
方案2:lambda单行实现
score = ['low', 'medium', 'high'] df['Skill'] = df['Skill'].apply(lambda x: ', '.join([f"{s}:{random.choice(score)}" for s in x.split(', ')]))
效果验证
假设原Skill列的值为python, sql, java,处理后输出示例:python:high, sql:low, java:medium,符合预期。
内容的提问来源于stack exchange,提问作者10sha25
相关产品推荐
相关产品推荐

