首页 > 解决方案 > 从 pandas df 列中提取分号分隔值

问题描述

我需要从 pandas 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

谢谢你。

标签: pythonregexpandas

解决方案


这应该有效:

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'])]

推荐阅读