1, 处理要求
1.保留字段
接受号码,运营商,地区,客户提交时间,对外转发时间,状态报告回执时间,状态
2.内容字段需要处理
a.提前【 】 内的字段(如【神州租车】,提取 神州租车)
b.判断内容里是否包含验证码三个字,如果包含,多返回一个字段1,如果不包含,返回0
3.最后返回文件为txt,字段之间间隔为“,”,行数据间隔为换行符
样例
含验证码:
接受号码,运营商,地区,客户提交时间,对外转发时间,状态报告回执时间,状态,神州租车,1
不含验证码:
接受号码,运营商,地区,客户提交时间,对外转发时间,状态报告回执时间,状态,神州租车,0
2, 数据文件
test.xlsx
3, 处理脚本
import pandas as pd
import re
def contain_verification_code(content: str) -> int:
"""
判断是否包含验证码
:param content:
:return:
"""
if '验证码' in content:
return 1
else:
return 0
def get_autograph(content: str) -> str:
"""
这个正则表达式unicode编码
3010【
3011 】
:param content:
:return:
"""
regex_pattern = r".*\u3010(.+)\u3011.*"
a = re.findall(pattern=regex_pattern, string=content)
if len(a) > 0:
return a[0]
else:
return '不存在'
if __name__ == '__main__':
input_path='lyj.xlsx'
df = pd.read_excel(input_path)
print(df.columns.tolist())
reversed_fields = '接收号码,运营商,地区,客户提交时间,对外转发时间,状态报告回执时间,状态,签名,类别'.split(',')
#df['类别'] = df['内容'].apply(contain_verification_code)
#df['签名'] = df['内容'].apply(get_autograph)
# 用这个似乎更直接
df['类别'] = df['内容'].str.extract('.*\u3010(.+)\u3011.*').fillna('不存在')
df['签名'] = df['内容'].str.contains('验证码').astype(int)
print(reversed_fields)
print(df[['类别', '签名','内容']].head())
df = df[reversed_fields]
output_path='lyj.txt'
df.to_csv(path_or_buf=output_path, sep=',', index=False)