在Python中的函数内执行2个数据帧

在Python中的函数内执行2个数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我一直在编写一个脚本,其中一个函数中使用了两个数据帧。df1和df2 到目前为止,我已经为一个数据帧使用了一个函数,但我不知道如何处理两个数据帧 当单独工作时(不使用任何函数),它工作得很好,但我不知道如何使用函数,我们必须处理2个数据帧df1和df2 identity_no Pincode company_name IN2231 110030 AXN pvt Ltd UK654IN 897653 Aviva Intl Ltd SL1432

我一直在编写一个脚本,其中一个函数中使用了两个数据帧。df1和df2

到目前为止,我已经为一个数据帧使用了一个函数,但我不知道如何处理两个数据帧

当单独工作时(不使用任何函数),它工作得很好,但我不知道如何使用函数,我们必须处理2个数据帧df1和df2

identity_no   Pincode   company_name

 IN2231        110030    AXN pvt Ltd
 UK654IN       897653    Aviva Intl Ltd
 SL1432        07658     Ship Incorporations
 LK0678G       120988    Oppo Mobiles Pvt Ltd 
Dataframe1

id_number  company_name        match_acc

IN2231D    AXN pvt Ltd
UK654IN    Aviva Intl Ltd
SL1432H    Ship Incorporations
LK0678G    Oppo Mobiles pvt ltd
NG5678J    Nokia Inc
Dataframe2

identity_no   Pincode   company_name

 IN2231        110030    AXN pvt Ltd
 UK654IN       897653    Aviva Intl Ltd
 SL1432        07658     Ship Incorporations
 LK0678G       120988    Oppo Mobiles Pvt Ltd 
获取输出:

id_number          company_name  match_acc
  IN2231D           AXN pvt Ltd         92
  UK654IN        Aviva Intl Ltd        100
  SL1432H   Ship Incorporations         92
  LK0678G  Oppo Mobiles pvt ltd        100
  NG5678J             Nokia Inc         43
df1 = pd.read_excel(open(r'input.xlsx', 'rb'), sheet_name='sheet1')
df2 = pd.read_excel(open(r'input.xlsx', 'rb'), sheet_name='sheet2')
from fuzzywuzzy import fuzz 
我一直在使用的代码:

id_number          company_name  match_acc
  IN2231D           AXN pvt Ltd         92
  UK654IN        Aviva Intl Ltd        100
  SL1432H   Ship Incorporations         92
  LK0678G  Oppo Mobiles pvt ltd        100
  NG5678J             Nokia Inc         43
df1 = pd.read_excel(open(r'input.xlsx', 'rb'), sheet_name='sheet1')
df2 = pd.read_excel(open(r'input.xlsx', 'rb'), sheet_name='sheet2')
from fuzzywuzzy import fuzz 
希望在函数内部使用以下脚本,例如def测试(x):

上面的脚本工作得很好,但我不明白如何在函数中使用脚本,然后在数据帧上使用它


需要建议。

我没有得到您想要的,但是为什么不将两个数据帧交给函数呢

将熊猫作为pd导入
def测试(df1:pd.DataFrame,df2:pd.DataFrame):
cross=df1[['id\u number']]。合并(df2[['identity\u no']],how='cross')
cross=cross.dropna(子集=['GST_No','GSTIN'])
交叉['match']=交叉应用(λx:fuzz.ratio(x.id\u编号,x.identity\u编号),轴=1)
df1['match\u acc']=df1.id\u number.map(cross.groupby('id\u number').match.max())