如果一系列值包含大熊猫中的一组特定字符,请替换后续字符

时间:2019-01-16 14:47:23

标签: python pandas dataframe

我有一个像这样的数据框:

df:
col1      col2         col3
 1       123xy56      pyrxyz 
 3        hcv           P
 xy12      R            T
 5        453xy         Z
 2        lxy6          Q

我想删除数据框每一列中以xy开头的所有内容。如果任何值以xy开头,则将其替换为零。

最终数据框应如下所示:

col1      col2         col3
 1        123           pyr
 3        hcv           P
 0         R            T
 5        453           Z
 2         l            Q

2 个答案:

答案 0 :(得分:1)

您可以两次使用replace

result = df.replace('xy.*', '', regex=True).replace('', 0)
print(result)

输出

  col1 col2 col3
0    1  123  pyr
1    3  hcv    P
2    0    R    T
3    5  453    Z
4    2    l    Q

答案 1 :(得分:0)

效率不高,但可以工作

df.apply(lambda x : x.str.split('xy').str[0]).replace('',0)

Out[386]: 
  col1 col2 col3
0    1  123  pyr
1    3  hcv    P
2    0    R    T
3    5  453    Z
4    2    l    Q