上述例程有点问题定义了一个函数match_codename里面用到了df2没有声明
可以在函数match_code(name)内部声明df2,或者将df2作为参数传入函数中。以下是两种修改方式:
方式一:在函数match_code(name)内部声明df2
def match_code(name):
df1 = pd.read_excel('file1.xlsx')
df2 = pd.read_excel('file2.xlsx')
df1['code'] = df1['code'].astype(str)
df2['code'] = df2['code'].astype(str)
df2['name'] = df2['name'].str.strip()
df2 = df2.drop_duplicates(subset=['code'], keep='first')
df2 = df2.set_index('code')
code = df1[df1['name'] == name]['code'].values[0]
code = code.strip()
code = code.split('.')[0]
if code in df2.index:
return df2.loc[code]['name']
else:
return 'Not Found'
方式二:将df2作为参数传入函数中
def match_code(name, df2):
df1 = pd.read_excel('file1.xlsx')
df1['code'] = df1['code'].astype(str)
df2['code'] = df2['code'].astype(str)
df2['name'] = df2['name'].str.strip()
df2 = df2.drop_duplicates(subset=['code'], keep='first')
df2 = df2.set_index('code')
code = df1[df1['name'] == name]['code'].values[0]
code = code.strip()
code = code.split('.')[0]
if code in df2.index:
return df2.loc[code]['name']
else:
return 'Not Found'
df2 = pd.read_excel('file2.xlsx')
result = match_code('Tom', df2)
print(result)
``
原文地址: https://www.cveoy.top/t/topic/cuMD 著作权归作者所有。请勿转载和采集!