python对比两张EXCEL表,将不同的数据生成新表?

python对比两张EXCEL表,将不同的数据生成新表?,第1张

import pandas as pd

# 数据表 a

df1 = pd.read_excel('C:/Users/Jelly/Desktop/a.xlsx')['名称']

# 数据表 b

df2 = pd.read_excel('C:/Users/Jelly/Desktop/b.xlsx')

# 筛选标记为2的名称

df2 = df2[df2['标记'] == 2]['名称']

# 数据表 a 转换为列表

aList = list(df1)

# 表头

columns = ['名称']

cList = []

# 遍历数据表 b

for k in df2:

# 判断 标记为2的名称是否在数据表中

if k not in aList:

# 输出

print(k)

cList.append(k)

df3 = pd.DataFrame(cList, columns=columns)

# 保存新数据表

df3.to_excel('c.xlsx', index=0)

a

b

c

import pandas as pd

# 读取两张表格

new_df = pd.read_excel("本次成绩.xlsx")

old_df = pd.read_excel("上次成绩.xlsx")

# 拷贝一份要修改的数据,以免破坏源数据

ndf = new_df.copy()

# 首先将不在'上次成绩.xlsx'中的人直接修改'对比上次'字段为'上次缺席'

ndf['对比上次'][~ndf['姓名'].isin(old_df['姓名'].values)] = '上次缺席'

# 循环遍历'上次成绩.xlsx'中的每一行

for i in old_df.itertuples():

old_name = getattr(i, '姓名')

old_score = getattr(i, '上次成绩')

'''

当'本次成绩.xlsx'中的名字与 old_name 相同时

对比'本次成绩'与 old_score 的大小并修改'对比上次'为对应值

'''

ndf.loc[(ndf['姓名'] == old_name) &(ndf['本次成绩'] >old_score), '对比上次'] = '好'

ndf.loc[(ndf['姓名'] == old_name) &(ndf['本次成绩'] == old_score), '对比上次'] = '持平'

ndf.loc[(ndf['姓名'] == old_name) &(ndf['本次成绩'] <old_score), '对比上次'] = '差'

# 导出到新表格并隐藏索引列

ndf.to_excel('对比.xlsx', index=False)

仅供参考,请根据实际情况自行修改优化代码。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6724534.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-27
下一篇2023-03-27

发表评论

登录后才能评论

评论列表(0条)

    保存