发布网友 发布时间:2022-10-07 17:33
共2个回答
热心网友 时间:2023-01-25 05:39
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)
仅供参考,请根据实际情况自行修改优化代码。
热心网友 时间:2023-01-25 06:57
好麻烦,用VB、VBA、VBS实现起来相当容易,而且不需要安装拍怂,直接运行即可。