原创 - Pandas 自定义Vlookup函数
Pandas没有Vlookup函数, 其它文章的自构函数也不好用,容易避免掉坑.因此自己原创一个,开始分享:
// Vlookup Func:
def vlookup(data1, data2vlookup, columns2vlookup , values_columns,na = 0):
data1['vlookup'] = ''
data2vlookup['vlookup'] =''
for i in columns2vlookup:
data1['vlookup'] = data1['vlookup'] + data1[i]
data2vlookup['vlookup'] = data2vlookup['vlookup'] + data2vlookup[i]
dict_1 = data2vlookup[['vlookup',values_columns]].set_index('vlookup').to_dict()[values_columns] #字典数据
data1[values_columns+'_v'] = data1['vlookup'].apply(lambda x:dict_1.get(x,na))
data1.drop('vlookup',axis = 1, inplace = True)
return data1
# 开始测试
columns_2_vlookup = ['订单类型','品牌线'] #可以多个列值 Vlookup;原始数据和目标数据必须有这些列
values_columns = '平均单量' # Vlookup 的数据列名,注意没有[]
data_1 = 年度数据_sum_1 #原始数据
data_2_vlookup = 年度数据_sum #目标数据
na_value = 0 #如无数据,用na_value填充
data_1 = vlookup(data_1,data_2_vlookup,columns_2_vlookup,values_columns,na_value)