使用python,如何快速实现判断一个字符串内特定字符与另一个列内的是否一致?
原始excel如下图,需求:快速判断指标编码列的编码与sql逻辑里写的编码,写的是否一致?
整体思路:
1.从sql逻辑列内,匹配出编码
2.将匹配出的编码,与指标编码对比
具体代码如下:
import re
import pandas as pd
# 读取excel文件
path=r"C:\Users\admin\Desktop\t\t1.xlsx"
# 将excel数据读入dataframe内
df=pd.read_excel(path)
#自定义函数,匹配出sql逻辑列内的编码
def test(x):
# 因sql逻辑列,有些为空,为防止报错,做一个if判断
if len(re.findall('SPRI[0-9]+',x,re.S))==0:
pass
else:
resp=re.findall('SPRI[0-9]+',x,re.S)[0]
return resp
# 从sql逻辑列内,使用正则,匹配出编码,填充到:修改后 列内
df['修改后']=df['SQL逻辑'].apply(lambda x:test(str(x)))
# 自定义贴签的函数,指标编码列的编码与sql逻辑列内匹配出编码对比,相同则返回:相同,不同则返回:不同
def t(x):
if x['指标编码']==x['修改后']:
return '相同'
else:
return '不同'
# 删除 修改后 列内有空值的行
df.dropna(subset='修改后',inplace=True)
# 调用函数,贴签
df['label']=df.apply(lambda x: t(x),axis=1)
# 打印
print(df.loc[df['label']=='不同'])
#python自学##python打卡#