为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

ABOUTYOU 2021-10-12 16:16:41
我有一个这样的数据框: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 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

您可以使用替换两次:


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


查看完整回答
反对 回复 2021-10-12
?
MMTTMM

TA贡献1869条经验 获得超4个赞

效率不高但有效


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


查看完整回答
反对 回复 2021-10-12
  • 2 回答
  • 0 关注
  • 150 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信