青年大学习的完成情况使用excel统计的,实现形式是由QQ群里的收集表功能,而我则需要根据这些收集表统计同学们某一期是否完成。
在运行程序前,需要提前准备好源文件,名字目录文件。
源文件
名字目录
运行环境
源码
# v 1.0
# file下的文件都为必须文件,且格式为excel
import os
import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings('ignore')
# --------------------------------------
file_path = r'./info' # 源文件的目录
name_path = r'./name_dic.xlsx' # 需要查找同学的文件(excel格式,列向)
save_path = r'./statistic_result.xlsx'
# --------------------------------------
def qndxx_statistic(file_path, name_path, save_path) :
# 用pandas依次打开excel文件
file_list = os.listdir(file_path)
file_name = []
for file in file_list:
file_name.append(file.split('.')[0])
# 读取需要检查的同学列表
name_data = pd.read_excel(name_path, 'Sheet1', index_col=None)
name_data = name_data['姓名']
# 创建一个csv文件,行为文件名,列为同学姓名
df = pd.DataFrame(np.zeros((len(name_data), len(file_list))), index=name_data, columns=file_name)
name_data = set(name_data)
# 根据excel中读取到的信息
for file in file_list:
file_info = pd.read_excel(os.path.join(file_path, file))
complete_name = file_info['你的姓名(必填)']
complete_name = set(complete_name.tolist())
for name in complete_name:
if name in name_data:
df.loc[name, file.split('.')[0]] = 1
# 保存制作完成的表格
df.to_excel(save_path, sheet_name='Sheet1')
if __name__ == '__main__':
qndxx_statistic(file_path, name_path, save_path)
输出结果
“1”表示完成了学习,“0”表示没有完成。
-
当前表格中包含部分同学的姓名,从一张包含姓名和学号的大表中,将同学的学号加入。
VLOOKUP函数
EXCEL入门必学的VLOOKUP函数相信我你终于可以学会了 Excel880实例教学网出品 -
RANK函数
已知每个同学的分数,在新的一列里标注根据同学的分数123456这样排序。
RANK(同学的分数,所有同学的分数,0升序/1降序)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)