我有一个客户服务呼叫记录在excel表中。下面是我的数据格式
So# Comments
1 sjhsh QUOTE 234566
1 sdsds customer call QUote 239876 Call back
2 adsdfh unknown call from customer QUOTE 189067 sdkjsd woieweio
3 QUOTE 657894 customer called for service
我正在从excel中读取这些数据,需要在每行的文本“QUOTE”后获得6位数字,然后将提取的数字添加为新列
1.The rows might have multiple "QUOTE" mentions 2.The rows might not have "QUOTE"at all
有人能帮我用python进行子字符串搜索吗
import pandas as pd
import re
file=pd.read_excel("C:/Users/rkatta/Desktop/Book1.xlsx")
file.set_index('Index', inplace=True, drop=True)
comments=file['InternalComments']
quotenum=[]
keyword= 'QUOTE'
for i in comments:
try:
befor_keyowrd, keyword, after_keyword = comments[i].partition(keyword)
num=after_keyword[:6]
quotenum.append(num)
except AttributeError:
befor_keyowrd, keyword, after_keyword =''
quotenum.append(after_keyword)
您需要用以下行替换列操作部分:
参见regex demo。你知道吗
正则表达式匹配:
(?i)
-不区分大小写模式quote
-aquote
子串\s*
-0+空格(\d+)
-捕获组1(由findall
返回的内容):1+个数字。你知道吗请参见Python代码演示:
(?i)(?<=QUOTE )\d+
将捕获您要查找的数字。你知道吗(?i)
表示模式的其余部分不区分大小写,因此它将匹配“QUote”和单词的任何变体。你知道吗(?<=QUOTE )
表示数字前面会有引号和空格\d+
是你的号码Demo
相关问题 更多 >
编程相关推荐