从df列中提取分号分隔的值

2024-09-28 01:27:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要从df列中提取一个特定的值。数据如下所示:

row        my_column
1          artid=delish.recipe.45064;artid=delish_recipe_45064;avb=83.3;role=4;data=list;prf=i
2          ab=px_d_1200;ab=2;ab=t_d_o_1000;artid=delish.recipe.23;artid=delish;role=1;pdf=true
3          dat=_o_1000;artid=delish.recipe.23;ar;role=56;passing=true;points001

数据不一致,但用逗号分隔,我需要提取role=x。 我用分号分隔数据。并且可以循环使用这些值来获取角色,但是想知道是否有更优雅的方法来解决它。 期望输出:

row        my_column
1          role=4
2          role=1
3          role=56

多谢各位


Tags: 数据truedfdataabmyrecipecolumn
2条回答

您可以使用str.extract并在括号内传递所需的模式

df['my_column'] = df['my_column'].str.extract('(role=\d+)')

   row  my_column
0    1     role=4
1    2     role=1
2    3    role=56

这应该起作用:

def get_role(x):
    l=x.split(sep=';')
    t=[i for i in l if i[:4]=='role')][0]
    return t

df['my_column']=[i for i in map(lambda y: get_role(y), df['my_column'])]

相关问题 更多 >

    热门问题