去重
代理商姓名手机对照表整合 格式如下
表里有很多重复电话姓名对照,在这里去重
import os
import pandas as pd
import shutil
dianhua = pd.read_excel('代理商姓名手机对照表整合.xlsx', )
dianhua.drop_duplicates('手机号', 'first', inplace=True) # 去重
with pd.ExcelWriter('./分销商电话去重.xlsx') as writer:
dianhua.to_excel(writer, sheet_name='Sheet1', index=False)
print('Pycharm')
电话姓名匹配
代理分销订单表 格式如下
根据分销商姓名电话对照表 把推荐账号 改成 推荐人
1、换表头
2、两表拼接 merge
import os
import pandas as pd
import shutil
dianhua = pd.read_excel('分销商电话去重.xlsx', )
# fenxiao = pd.read_excel('代理分销订单表2.xlsx', usecols=[0, 1, 2, 3, 4])
fenxiao = pd.read_excel('代理分销订单表.xlsx')
c_list = fenxiao.values.tolist()[0] # 得到想要设置为列索引【表头】的某一行提取出来
fenxiao.columns = c_list # 设置列索引【表头】
fenxiao.drop(index = [0],inplace = True)
fenxiao['手机号'] = fenxiao['手机号'].apply(pd.to_numeric) # 分销表里 手机号 是str格式
c = pd.merge(fenxiao,dianhua,on='手机号',how='left')
with pd.ExcelWriter('./分销商电话姓名匹配结果.xlsx') as writer:
c.to_excel(writer, sheet_name='Sheet1', index=False)
print('Pycharm')
关于merge函数
(1)使用主键和不使用主键
(2)连接方式:inner(内连接)、outer(外连接)、left(左连接)、right(右连接)
1、inner:主键信息相同,则拼接。只保留主键相同的信息
2、outer:外连接是保留两个表的所有信息,拼接的时候遇到标签不能对齐的部分,用NAN进行填充
3、left:左连接是保留所有左表的信息,把右表中主键与左表一致的信息拼接进来,标签不能对齐的部分,用NAN进行填充
4、right:右连接是保留所有右表的信息,把坐表中主键与右表一致的信息拼接进来,标签不能对齐的部分,用NAN进行填充
(3)参数lefton和righton,可以用于分别指定每个表的主键。相同列但是列名不同,如A表是 姓名,B表是 员工姓名