如果系列的值包含pandas中的特定字符集,则替换后续字符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果系列的值包含pandas中的特定字符集,则替换后续字符相关的知识,希望对你有一定的参考价值。
我有一个这样的数据框:
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
答案
你可以使用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
另一答案
工作效率不高
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
以上是关于如果系列的值包含pandas中的特定字符集,则替换后续字符的主要内容,如果未能解决你的问题,请参考以下文章
如果组中的最后一个元素包含Pandas中的特定字符串,则标记