1, 处理要求
1.保留字段接受号码,运营商,地区,客户提交时间,对外转发时间,状态报告回执时间,状态2.内容字段需要处理 a.提前【 】 内的字段(如【神州租车】,提取 神州租车) b.判断内容里是否包含验证码三个字,如果包含,多返回一个字段1,如果不包含,返回03.最后返回文件为txt,字段之间间隔为“,”,行数据间隔为换行符样例含验证码:接受号码,运营商,地区,客户提交时间,对外转发时间,状态报告回执时间,状态,神州租车,1不含验证码:接受号码,运营商,地区,客户提交时间,对外转发时间,状态报告回执时间,状态,神州租车,0
2, 数据文件
test.xlsx
3, 处理脚本
import pandas as pdimport redef contain_verification_code(content: str) -> int: """ 判断是否包含验证码 :param content: :return: """ if '验证码' in content: return 1 else: return 0def 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)