Python编程入门

发表时间: 2024-05-12 14:25

使用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打卡#