想利用Python填充Excel

现在有两个Excel表格,一个Excel包含一万多项数据,另一个表格只有几百个。这两个表格有相同项 姓名,想利用Python脚本自动读取,实现:如果大的表格里面的姓名项和小表格中的姓名项中名字重合的话,就利用小表格中的数据整行替换大表格中的数据。
现在思路不是很明确,不知道咋写。看网上有如果一列相同就替换另一列的,但是和我这个不太一样


df=pd.concat([df1,df2]).drop_duplicates('姓名',keep='last',ignore_index=True)
df=pd.concat([df1,df2]).drop_duplicates('姓名',keep='last').sort_index()

拼接,去重留df2,输出顺序会和df1有所不同,不过一般这么大非人类的表格是不看顺序的。

同一楼的意见,也可以先进行集合概念上的数据清洗,如有更复杂的情况,再对代码进行优化,粗略参考如下:

import pandas as pd

# 求交集list
excel_1 = 'C:/Users/Administrator/PycharmProjects/EXCELread/大表.xlsx'  # 大表的路径
excel_2 = 'C:/Users/Administrator/PycharmProjects/EXCELread/小表.xlsx'  # 小表的路径

df1 = pd.read_excel(excel_1, sheet_name='员工年龄')  # 读取大表为df结构,表单为'员工年龄'
df2 = pd.read_excel(excel_2, sheet_name='员工工龄')  # 读取小表为df结构,表单为'员工工龄'
set_excel_1 = set(df1['姓名'])  # 取大表姓名的无重复集合
set_excel_2 = set(df2['姓名'])  # 取小表姓名的无重复集合

jiao_ji = list(set_excel_1 & set_excel_2)  # 求出姓名的交集,即重复部分

# 大表去除交集
for name in jiao_ji:
    df1 = df1.drop(index=df1[df1['姓名'] == name].index)

# 修改后的大表和小表拼接,生成新的结果
save_path = 'C:/Users/Administrator/PycharmProjects/EXCELread/'  # 新结果的保存路径(建议保留原来的文件)
result = pd.concat([df2, df1])  # 之所以df2写在df1前面,是因为改变的部分会置顶
result.to_excel(save_path+'拼接.xlsx', sheet_name='结果', index=False)

img

img

img