玩命加载中 . . .

Python读写excel表格


Python读写Excel文件

目标

要使用Python的pandas库对excel进行读写,具体内容是将一张汇总的表格中的数据,按学院分类统计到不同的Sheet中,前后效果图如下。

image-20220521151745267

image-20220521151932125

思路

Python的pandas库可以很方便地对excel表格进行读写操作。由于涉及多张Sheet表的读写,这里引入几个很重要的函数:

import pandas as pd
fp = pd.read_excel('...') # 读取之后,fp将保存excel的二维表
fp.iloc[index].values # 可以获取fp中第index行的数据,列表形式
writer = fp.ExcelWriter('...') # 方便读写一个Excel文件的多个Sheet

事先创建好一个字典(列表也可),键名为各个学院名,值为空列表;

逐行读取汇总表,获取到每一行的学院,将当前行信息加入到学院所属的列表之中,待行遍历结束后,统一调用pd.DataFrame(data, '...')创建新的Sheet表或者向已有的Sheet中追加数据。

完整代码

import pandas as pd
import numpy as np

# 创建分院统计表并打开,方便写多个Sheet
fresult = pd.DataFrame()
fresult.to_excel('./test.xlsx')
fdata = pd.ExcelWriter('./test.xlsx')

path = '...'
fp = pd.read_excel(path, sheet_name=0)

dicts = {
    '计算机科学与技术学院': [],
    '材料科学与工程学院': [],
    '信息科学与工程学院': [],
    '理学院': [],
    '新能源学院': [],
    '经济管理学院': [],
    '船舶与海洋工程学院': [],
    '语言文学学院': [],
    '汽车工程学院': [],
    '海洋科学与技术学院': [],
}

# 逐行读取汇总表,分类加入数组
for i in range(1, fp.shape[0]):
    print(fp.iloc[i].values)
    data = fp.iloc[i].values
    data[1] = str(data[1])
    department = data[2] # 获取到学生学院
    dicts[department].append(np.array(data))

# 写入分好类的excel表格
for key in dicts.keys():
    data = np.array(dicts[key])
    write = pd.DataFrame(data, columns=['姓名', '学号', '学院'])
    write.to_excel(fdata, sheet_name=key)

fdata.save()

文章作者: 鹿卿
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 鹿卿 !
评论
  目录