Python 用于在dataframe中查找和替换字符串的正则表达式

Python 用于在dataframe中查找和替换字符串的正则表达式,python,regex,pandas,replace,Python,Regex,Pandas,Replace,我试图用正则表达式替换单词。但它不起作用 我试图只替换有一个点的单词 我的专栏: 我试过: 但是这个正则表达式替换了这个数据框中的所有文本 好产量 如果你正在寻找单身。使用: 我认为你可以使用: df['names'] = np.where(df['names'].str.contains('\.'), '<person>',df['names']) “有一个词”吗?这份声明不清楚。你是说只有一个单词的字符串?包含字符串1?你是说一吗。点?也许他指的是有一个“.”-点。因此,如果它

我试图用正则表达式替换单词。但它不起作用

我试图只替换有一个点的单词

我的专栏:

我试过:

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

好产量


如果你正在寻找单身。使用:

我认为你可以使用:

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

“有一个词”吗?这份声明不清楚。你是说只有一个单词的字符串?包含字符串1?你是说一吗。点?也许他指的是有一个“.”-点。因此,如果它有一个像“a.blala”这样的句号,那么它将替换为。这就是我的解释。使用^[^.]*\.[^.]*$,看看如果在点/句点后有空格会发生什么。它仍然有效吗?
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>
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>
df['names'] = np.where(df['names'].str.contains('\.'), '<person>',df['names'])