正则表达式用于查找和替换数据帧中的字符串

时间:2018-11-13 10:24:56

标签: python regex pandas replace

我正在尝试使用正则表达式替换单词。但这不起作用。

我正在尝试仅替换具有一个点(。)

的单词

我的专栏:

           Names   
   House is cold     
         a.blala     
        myname.s  
  Tables are old      
          L.NAME  
         E. Name

我尝试过:

df['Names'] = df['Names'].str.replace(r'([a-z]|[a-z]+)|([A-Z]|[A-Z]+)\..?([a-z]+|[A-Z]+)|([A-Z][a-z]+)', '<person>')

但是此正则表达式替换了此数据框中的所有文本。

好的输出

           Names   
   House is cold     
        <person>     
        <person>  
  Tables are old      
        <person>  
        <person>

2 个答案:

答案 0 :(得分:1)

如果您要查找单个.,请使用:

import numpy as np
df['Names'] = np.where(df['Names'].str.count('\.')==1, '<person>', df['Names'])
df
#            Names
#0   House is cold
#1        <person>
#2        <person>
#3  Tables are old
#4        <person>
#5        <person>

答案 1 :(得分:0)

我认为您可以使用:

df['names'] = np.where(df['names'].str.contains('\.'), '<person>',df['names'])