首页 > 解决方案 > 如何使用列表理解在 python 中提取字符串并创建新列?

问题描述

我有一个具有“名称”列的数据框(df)

Name
t_gh_m
t_mr_h
t_gh_u
t_mr_h
t_z_z   

我想创建一个列名“组”会给我[“gh”,“mr”]作为回报,如果存在的话,否则nun

我的方法
df["group"] = [i for i in df["Name"] for j in ["gh","mr"] if j not in i return np.nun else]
但这是一个错误

预期产出

 Name       group
t_gh_m       "gh"
t_mr_h       "mr"
t_gh_u       "gh"
t_mr_h       "mr"
t_z_z        nan

标签: pythonpython-3.x

解决方案


您正在寻找 pandas str (正则表达式)extract方法:

df['group'] = df['Name'].str.extract('_(..)_')

推荐阅读