您的位置:首页 > 汽车 > 时评 > 近几天的新闻摘抄_合肥最新通告今天_qq群推广引流免费网站_网站平台都有哪些

近几天的新闻摘抄_合肥最新通告今天_qq群推广引流免费网站_网站平台都有哪些

2025/3/14 13:14:37 来源:https://blog.csdn.net/m0_56276607/article/details/146064280  浏览:    关键词:近几天的新闻摘抄_合肥最新通告今天_qq群推广引流免费网站_网站平台都有哪些
近几天的新闻摘抄_合肥最新通告今天_qq群推广引流免费网站_网站平台都有哪些

背景:

  • 有两个excel,他们有相同的一个列;
  • 按照这个列合并成一个大的excel,即vlookup功能

要求:

  1. 只需要第二个excel的少量的列,比如从40个列中挑选2个列
  2. 新增的来自第二个excel的列需要放到第一个excel指定的列后面;
  3. 将结果输出到一个新的excel;
import pandas as pd# 文件路径
grade_path = r'C:\TELCEL_MEXICO_BOT\A\学生成绩表.xlsx'
sinfo_path = r'C:\TELCEL_MEXICO_BOT\A\学生信息表.xlsx'
output_path = r'C:\TELCEL_MEXICO_BOT\A\合并后的数据表.xlsx'  # 保存路径# 读取数据
df_grade = pd.read_excel(grade_path)
df_sinfo = pd.read_excel(sinfo_path)# 打印前几行数据
print("学生成绩表:")
print(df_grade)
学生成绩表:班级    学号  语文   数学  英语
0  C01  S001  99   84  88
1  C01  S002  66   95  77
2  C01  S003  68   68  61
3  C01  S004  63   66  82
4  C01  S005  72   95  94
5  C01  S006  80   97  97
6  C01  S007  78   95  90
7  C01  S008  56   99  89
8  C01  S009  66  100  97
9  C01  S010  89   99  67print("\n学生信息表:")
print(df_sinfo)
学生信息表:学号  姓名 性别  年龄  籍贯
0  S001  怠涵  女  23  山东
1  S002  婉清  女  25  河南
2  S003  溪榕  女  23  湖北
3  S004  漠涓  女  19  陕西
4  S005  祈博  女  24  山东# 选择需要的列
df_sinfo = df_sinfo[['学号', '姓名', '性别']]
print(df_sinfo)学号  姓名 性别
0  S001  怠涵  女
1  S002  婉清  女
2  S003  溪榕  女
3  S004  漠涓  女
4  S005  祈博  女# 合并数据.
#左表df_grade,右表df_sinfo, how='left'以左表中的'学号'为键在右表进行vlookup查找
df_merged = pd.merge(df_grade, df_sinfo, how='left', on=['学号'])# 调整列的顺序
cols = df_merged.columns.tolist()  # 获取所有列名
cols = cols[:2] + cols[-2:] + cols[2:-2]  # 重新排列列的顺序
df_merged = df_merged[cols]# 打印合并后的数据
print("\n合并后的数据表:")
print(df_merged)
合并后的数据表:班级    学号   姓名   性别  语文   数学  英语
0  C01  S001   怠涵    女  99   84  88
1  C01  S002   婉清    女  66   95  77
2  C01  S003   溪榕    女  68   68  61
3  C01  S004   漠涓    女  63   66  82
4  C01  S005   祈博    女  72   95  94
5  C01  S006  NaN  NaN  80   97  97
6  C01  S007  NaN  NaN  78   95  90
7  C01  S008  NaN  NaN  56   99  89
8  C01  S009  NaN  NaN  66  100  97
9  C01  S010  NaN  NaN  89   99  67# 将合并后的数据保存到指定路径
df_merged.to_excel(output_path, index=False)
print(f"\n合并后的数据已保存到 {output_path}")
合并后的数据已保存到 C:\TELCEL_MEXICO_BOT\A\合并后的数据表.xlsx

vlookup后的异常值处理

# 读取数据
df_grade = pd.read_excel(grade_path)班级    学号  语文   数学  英语
0  C01  S001  99   84  88
1  C01  S002  66   95  77
2  C01  S003  68   68  61
3  C01  S004  63   66  82
4  C01  S005  72   95  94
5  C01  S006  80   97  97
6  C01  S007  78   95  90
7  C01  S008  56   99  89
8  C01  S009  66  100  97
9  C01  S010  89   99  67df_sinfo = pd.read_excel(sinfo_path)学号  姓名 性别  年龄  籍贯
0  S001  怠涵  女  23  山东
1  S002  婉清  女  25  河南
2  S003  溪榕  女  23  湖北
3  S004  漠涓  女  19  陕西
4  S005  祈博  女  24  山东# 选择需要的列
df_sinfo = df_sinfo[['学号', '姓名', '性别']]
print(df_sinfo)学号  姓名 性别
0  S001  怠涵  女
1  S002  婉清  女
2  S003  溪榕  女
3  S004  漠涓  女
4  S005  祈博  女##左表df_grade,右表df_sinfo, 左右两表都有相同列'学号',how=left表示以左表进行vlookup,右表中的V到左表中填充,sort表示是否排序,fillna表示V不到的空值填充df_merged_2=(df_grade.merge(df_sinfo,on='学号',how = 'left',sort = 'false')).fillna(0)
print(df_merged_2)班级    学号  语文   数学  英语  姓名 性别
0  C01  S001  99   84  88  怠涵  女
1  C01  S002  66   95  77  婉清  女
2  C01  S003  68   68  61  溪榕  女
3  C01  S004  63   66  82  漠涓  女
4  C01  S005  72   95  94  祈博  女
5  C01  S006  80   97  97   0  0
6  C01  S007  78   95  90   0  0
7  C01  S008  56   99  89   0  0
8  C01  S009  66  100  97   0  0
9  C01  S010  89   99  67   0  0

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com