如何提取在列的所有条目中包含部分匹配的字符串的行

时间:2019-10-14 18:57:45

标签: python dataframe pyspark

我在下面的数据框中有“错误”列

true

我只想过滤出具有特定错误的行(例如“ E3”)。在此示例中,我只希望最后一行。

为简单起见,我在此数据帧中将错误消息替换为“ E1,E2等”。但是,在实际情况下,在这种情况下,我会使用定界符('|')管道来修饰一长串错误消息

2 个答案:

答案 0 :(得分:1)

IIUC

err = 'E3'
mask = df.Errors.str.split('|').apply(lambda x: all(e==err for e in x))

df[mask]
#   student_id       name timestamp    Errors
# 3         s2  sample123        t2  E3|E3|E3

答案 1 :(得分:0)

另一种遮罩方式:

mask = df['error'].apply(lambda x: True if not re.sub('E3|\|','',x) else False)