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文件。这一过程使数据处理变得更加简单高效,也为学习和工作带来便利。