python - 如何使用列表理解在 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
解决方案
您正在寻找 pandas str (正则表达式)extract
方法:
df['group'] = df['Name'].str.extract('_(..)_')