首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将关键字转换为python dataframe列中的列表

将关键字转换为python dataframe列中的列表
EN

Stack Overflow用户
提问于 2022-11-25 17:21:39
回答 2查看 48关注 0票数 0

我从另一列中提取关键字,创建一个新的列(硬技能),如下所示:(https://i.stack.imgur.com/XNOIK.png)

但我想让每个关键字成为一个列表格式,在“硬着陆技能”栏。例如,对于“硬技能”列的第一行,我希望得到的结果是:

“'Python编程”,“机器学习”,“数据分析”。

而不是

Python编程,机器学习,数据分析。

这就是我如何将关键词过滤到新的“硬技能”专栏中。

#筛选并创建新专栏,介绍硬技能hard_skills =“Python编程”、“统计”、“统计假设测试”、“数据清理”、“Tensorflow”、“机器学习”、“数据分析”、“数据可视化”、“云计算”、“R编程”、“数据科学”、“计算机编程”、“深度学习”、“数据分析”、“SQL”、“回归分析”、“算法”、“JavaScript”、“Python”

def get_hard_skills(技能):return_hard_skills =“hard_skill in hard_skills: if skills.find( hard_skill ) >= 0: if return_hard_skills ==”:return_hard_skills = hard_skill hard_skills: return_hard_skills = return_hard_skills +,“+hard_skill if return_hard_skills ==”:返回(未找到)

课程名称技能‘硬技能’=“

#循环数据帧以获得硬技能

对于范围内的I(0,len(course_name_skills)-1):#数据科学课程的每一行技能= course_name_skills.loci,“技能”如果不是isNaN(技能):#如果不是空的course_name_skills.loci,“硬技能”=get_hard_skills(技能)

course_name_skills =course_name_skills.replace(未找到,np.NaN) only_hardskills =course_name_skills.dropna(子集=‘难技能’)

是否有办法更改筛选关键字数据框架的代码?还是有更有效的方法?

我试过脱衣舞(),甚至试过我的运气。

代码语言:javascript
复制
return_hard_skills = "[" + return_hard_skills + "," + hard_skill + "]"

但没能通过。

带有原始列的Dataframe

随机但需要生成的真表或假表

EN

回答 2

Stack Overflow用户

发布于 2022-11-25 17:41:55

IIUC,这里不需要函数和/或循环,因为您可以使用pandas.Series.str.join获得预期的列/输出:

代码语言:javascript
复制
course_name_skills["hard skills"]= course_name_skills["skills"].str.join(",")

注意:上面的行假设列hard skills保存列表,否则(如果字符串)使用如下:

代码语言:javascript
复制
course_name_skills["hard skills"]= (
                                    course_name_skills["skills"]
                                        .str.strip("[]")
                                        .replace({"'": "", "\s+": ""}, regex=True)
                                    )
票数 0
EN

Stack Overflow用户

发布于 2022-11-25 17:44:20

代码语言:javascript
复制
df['skills'] = df['hard skills'].str.split(',').apply(
    lambda skills: [skill.strip() for skill in skills]
)

如果您想要添加过滤:

代码语言:javascript
复制
skills = list(set(df['skills'].sum()))
for skill in skills:
  df[skill] = df['skills'].apply(lambda x: skill in x)

df.loc[df['Data Analysis']==True]['course_name']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74576129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档