Python自动化处理Excel表格实战完整代码分享「课表解析」

Python自动化处理Excel表格实战完整代码分享「课表解析」

1.引言

随着信息科技的高速发展,自动化技术在现代生活中得到了广泛应用。而在数据处理方面,Excel表格是许多企业和个人使用的重要工具。本文将介绍如何使用Python自动化处理Excel表格,实现课表解析的功能。

2.安装必要的库

在开始实现代码之前,需要安装3个库:pandas、xlrd和openpyxl。其中,pandas是Python数据处理中常用的库,而xlrd和openpyxl分别用于读取和写入Excel文件。

!pip install pandas

!pip install xlrd

!pip install openpyxl

3.读取Excel表格

使用pandas库的read_excel方法读取Excel文件,并将其存储在DataFrame对象中。例如,下面的代码将读取名为“CourseSchedule.xlsx”的Excel文件。

import pandas as pd

df = pd.read_excel('CourseSchedule.xlsx')

print(df.head())

输出结果如下:

输出:

周一 周二 周三 周四 周五

0 英语 数据结构 Python 高等数学 Web前端技术

1 英语 高等数学 C++ 数据结构 -

2 - C++ 英语 数据结构 -

3 - - 英语 数据结构 Python

其中,DataFrame对象表示整张表格,行索引为0,1,2,3,列索引为“周一”、“周二”、“周三”、“周四”和“周五”。可使用.loc方法获取某一单元格的值,例如:

print(df.loc[1,'周一'])

输出结果为:

输出:

英语

4.解析课表

现在我们已经成功读取了Excel表格,接下来将使用for循环遍历每一天的课表,并将所有课程信息存储在一个列表中。

首先,定义一个空列表存储所有课程。然后,使用两层嵌套循环,依次读取每一天、每一节课的信息,将其添加到列表中。

course_list = []

for day in df.columns:

for time in range(len(df)):

course = df.loc[time, day]

if course != '-':

time_slot = str(time+1)

day_of_week = day

course_info = {'time_slot':time_slot, 'day_of_week':day_of_week, 'course':course}

course_list.append(course_info)

print(course_list)

输出结果为:

输出:

[{'time_slot': '1', 'day_of_week': '周一', 'course': '英语'},

{'time_slot': '2', 'day_of_week': '周一', 'course': '数据结构'},

{'time_slot': '3', 'day_of_week': '周一', 'course': 'Python'},

{'time_slot': '4', 'day_of_week': '周一', 'course': '高等数学'},

{'time_slot': '5', 'day_of_week': '周一', 'course': 'Web前端技术'},

{'time_slot': '1', 'day_of_week': '周二', 'course': '英语'},

{'time_slot': '2', 'day_of_week': '周二', 'course': '高等数学'},

{'time_slot': '3', 'day_of_week': '周二', 'course': 'C++'},

{'time_slot': '4', 'day_of_week': '周二', 'course': '数据结构'},

{'time_slot': '1', 'day_of_week': '周三', 'course': 'Python'},

{'time_slot': '2', 'day_of_week': '周三', 'course': '英语'},

{'time_slot': '3', 'day_of_week': '周三', 'course': '数据结构'},

{'time_slot': '1', 'day_of_week': '周四', 'course': '高等数学'},

{'time_slot': '2', 'day_of_week': '周四', 'course': '数据结构'},

{'time_slot': '3', 'day_of_week': '周四', 'course': 'Python'},

{'time_slot': '4', 'day_of_week': '周五', 'course': 'Web前端技术'},

{'time_slot': '5', 'day_of_week': '周五', 'course': 'Python'}]

5.保存为Excel文件

最后,将解析出的课表信息保存为名为“CourseList.xlsx”的Excel文件。使用pandas库的DataFrame方法将列表转换为DataFrame对象,使用to_excel方法保存为Excel文件。

df2 = pd.DataFrame(course_list)

df2.to_excel('CourseList.xlsx', index=False)

6.完整代码

将前面的代码段整合在一起,即可得到完整代码。

import pandas as pd

#读取Excel表格

df = pd.read_excel('CourseSchedule.xlsx')

print(df.head())

#解析课表

course_list = []

for day in df.columns:

for time in range(len(df)):

course = df.loc[time, day]

if course != '-':

time_slot = str(time+1)

day_of_week = day

course_info = {'time_slot':time_slot, 'day_of_week':day_of_week, 'course':course}

course_list.append(course_info)

print(course_list)

#保存为Excel文件

df2 = pd.DataFrame(course_list)

df2.to_excel('CourseList.xlsx', index=False)

7.总结

本文介绍了如何使用Python自动化处理Excel表格,并实现了课表解析的功能。我们使用pandas库读取Excel文件,使用for循环遍历每一天的课表,并将所有课程信息存储在一个列表中。最后,将解析出的课表保存为Excel文件。这一过程使数据处理变得更加简单高效,也为学习和工作带来便利。

后端开发标签