
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)
仅供参考,请根据实际情况自行修改优化代码。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)