上一节我们介绍了自己创建DataFrame的基本操作。但是在实际应用中我们往往需要处理已有的excel数据表,因此本节介绍一下Pandas读取文件的相关操作。
1、读取和写入文件
首先我们创建一个成绩数据——1.数学学习成绩记录表.xlsx,如图所示
read_excel()
函数用于读取 Excel 文件。其主要参数如下:
- 第一个参数为读取的文件路径。
- 第二个参数
index_col
用于设置索引列,例如index_col=0
表示将第一列设置为索引列。 - 第三个参数
encoding
用于指定文件的编码方式,例如encoding='utf-8'
。
实际导入文件时,只需在括号中加上文件的路径即可,如下所示:
import pandas as pd
score=pd.read_excel('C:\\Users\\86187\\Desktop\\1.数学学习成绩记录表.xlsx')
score
运行成功后会显示数据的前五行与后五行。
如果需要设置索引列和编码方式,可以按如下方式优化:
import pandas as pd
# 读取Excel文件,设置第一列为索引列,并指定编码方式
df = pd.read_excel('文件路径.xlsx', index_col=0, encoding='utf-8')
接下来介绍一个将处理好的数据写入新的文件的操作。如果想要保存为excel文件,可以使用to_excel操作。运行成功后就可以在电脑上找到对应文件。
score.to_excel('final.xlsx') #写入数据到excel
2、查看数据信息
第一节提到,当 Python 成功读取 Excel 文件后,打印表格时默认会显示前五行和后五行的数据。除此之外,我们还可以使用 score.head()
方法查看文件的头部数据,以及使用 score.tail()
方法查看文件的底部数据。这些方法可以帮助我们快速浏览文件的主要内容。
import pandas as pd
score=pd.read_excel('C:\\Users\\86187\\Desktop\\1.数学学习成绩记录表.xlsx')
score.head()
import pandas as pd
score=pd.read_excel('C:\\Users\\86187\\Desktop\\1.数学学习成绩记录表.xlsx')
score.tail()
除此之外,我们还可以调用score.describe( )方法,查看数据的其他信息包括计数、均值、标准差、最小值、四分位数和最大值。这些方法可以帮助我们全面了解数据的基本情况。
import pandas as pd
score=pd.read_excel('C:\\Users\\86187\\Desktop\\1.数学学习成绩记录表.xlsx')
score.describe()
如上图所示:
count:计算对应属性下所有非null数据的条数。
mean、max、min:分别表示所有数据的平均值、最大值、最小值。
std:观测值的标准差。
百分数:对应百分位的大小值。
3、索引与数据操作
3.1按列索引
获取高数成绩数据:score.高数成绩
获取线代成绩:score.线代成绩
同理,按照这样的方式我们可以获得每一列的数据。
我们也可以用方括号来索引,效果相同,如获取高数成绩数据:
score['高数成绩']
在括号中加入多个列,如:score['高数成绩','线代成绩']可以获得不同列的数据:
如果想获得某个人的高数成绩则可以这样写:
score ['高数成绩'][0] (这里导出的是第一行曹蓉的高数成绩,行依然按照数字进行索引)
同理,我们想获得第二个同学的数据,行索引则是1。当然也可以使用切片的形式获取连续几个同学的成绩,例如,获取第二名到第五名同学的线代成绩:
import pandas as pd
score=pd.read_excel('C:\\Users\\86187\\Desktop\\1.数学学习成绩记录表.xlsx')
score['线代成绩'][1:6]
3.2按行索引
选取学生成绩的第二行到第七行:
score.[1:6]
当然,更标准的写法是:
score.iloc[1:6]
iloc不同于loc,loc传入的是一个具体的标签,iloc传入的是序号,行和列都是从0开始。例如,获取曹蓉的概率论成绩:
score.iloc[0,3]
同理,也可以获取一个二维范围的数据:
获取前三位同学的班级和平均成绩数据
score.iloc[0:3,4:6]