在Python中的函数内执行2个数据帧
我一直在编写一个脚本,其中一个函数中使用了两个数据帧。df1和df2 到目前为止,我已经为一个数据帧使用了一个函数,但我不知道如何处理两个数据帧 当单独工作时(不使用任何函数),它工作得很好,但我不知道如何使用函数,我们必须处理2个数据帧df1和df2在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
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())