Python 如何构建熊猫姓名检测器
这是我的数据集Python 如何构建熊猫姓名检测器,python,regex,pandas,dataframe,Python,Regex,Pandas,Dataframe,这是我的数据集 Id. Text 1 Dear Mr. Alpha Terra, your food is delivered 2 Dear Mrs. Betta Irina Viruva, your drink is delivered 我想要的是检测Mr、或Mrs、之后但、之前的单词。所以,我可以得到名字,这就是我想要的 Id. Text Name 1
Id. Text
1 Dear Mr. Alpha Terra, your food is delivered
2 Dear Mrs. Betta Irina Viruva, your drink is delivered
我想要的是检测Mr、
或Mrs、
之后但、
之前的单词。所以,我可以得到名字,这就是我想要的
Id. Text Name
1 Dear Mr. Alpha Terra, your food is delivered Alpha Terra
2 Dear Mrs. Betta Irina Viruva, your drink is delivered Betta Irina Viruva
试试这个:
In [134]: df.Text.str.split('.',expand=True)[1].str.split(',',expand=True)[0]
Out[134]:
0 Alpha Terra
1 Betta Irina Viruva
Name: 0, dtype: object
import pandas
data = [{'ID': 1, 'Text': 'Dear Mr. Alpha Terra, your food is delivered'},
{'ID': 2, 'Text': 'Dear Mrs. Betta Irina Viruva, your drink is delivered'}]
df = pandas.DataFrame(data)
df['Name'] = df.Text.str.extract(r'\.(.*?),')
print(df)
试试这个:
In [134]: df.Text.str.split('.',expand=True)[1].str.split(',',expand=True)[0]
Out[134]:
0 Alpha Terra
1 Betta Irina Viruva
Name: 0, dtype: object
import pandas
data = [{'ID': 1, 'Text': 'Dear Mr. Alpha Terra, your food is delivered'},
{'ID': 2, 'Text': 'Dear Mrs. Betta Irina Viruva, your drink is delivered'}]
df = pandas.DataFrame(data)
df['Name'] = df.Text.str.extract(r'\.(.*?),')
print(df)
一种选择是使用以下模式进行匹配:
.*Mrs?\.\s+([^,]+).*
这将捕获Mr.
或Mrs.
之后的所有逗号,包括但不包括以下第一个逗号
line = "Dear Mrs. Betta Irina Viruva, your drink is delivered"
matches = re.match(r'.*Mrs?\.\s+([^,]+).*', line, re.M|re.I)
if matches:
print "Name: ", matches.group(1)
else:
print "No match!!"
一个选项是使用以下模式进行匹配:
.*Mrs?\.\s+([^,]+).*
这将捕获Mr.
或Mrs.
之后的所有逗号,包括但不包括以下第一个逗号
line = "Dear Mrs. Betta Irina Viruva, your drink is delivered"
matches = re.match(r'.*Mrs?\.\s+([^,]+).*', line, re.M|re.I)
if matches:
print "Name: ", matches.group(1)
else:
print "No match!!"
使用:
使用:
当您要求使用正则表达式时,请尝试以下操作:
import pandas
data = [{'ID': 1, 'Text': 'Dear Mr. Alpha Terra, your food is delivered'},
{'ID': 2, 'Text': 'Dear Mrs. Betta Irina Viruva, your drink is delivered'}]
df = pandas.DataFrame(data)
df['Name'] = df.Text.str.extract(r'\.(.*?),')
print(df)
下面是一个供您尝试的方法。当您要求使用正则表达式时,请尝试以下方法:
import pandas
data = [{'ID': 1, 'Text': 'Dear Mr. Alpha Terra, your food is delivered'},
{'ID': 2, 'Text': 'Dear Mrs. Betta Irina Viruva, your drink is delivered'}]
df = pandas.DataFrame(data)
df['Name'] = df.Text.str.extract(r'\.(.*?),')
print(df)
以下是一个供您尝试的示例。提及您尝试过的内容可能会有所帮助。我正在将
str.extractall
与or类别一起使用,但没有结束提及您尝试过的内容可能会有所帮助。我正在将str.extractall
与or类别一起使用,但它并没有结束。我向你的正则表达式鞠躬。我向你的正则表达式鞠躬。至少对于给定的样本数据,这是有效的,但如果输入的点出现在其他上下文中,它将失败。这是有效的,至少对于给定的样本数据,但如果输入的点出现在其他上下文中,它将失败。