可以在函数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)
``
上述例程有点问题定义了一个函数match_codename里面用到了df2没有声明

原文地址: https://www.cveoy.top/t/topic/cuMD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录