上一节我们介绍了通过按行索引和按列索引找出相关数据的方法。本章节将进一步介绍如何筛选数据,并对数据进行排序、增删的方法。
示例表格和上一节相同。
1.数据筛选
Python中可以通过区域筛选,即获取某几行某几列的方法得到数据。例如,我要获得曹蓉~冯缓的班级~总成绩数据,代码可以这样写
import pandas as pd
score=pd.read_excel('C:\\Users\\86187\\Desktop\\1.数学学习成绩记录表.xlsx')
score.iloc[0:8,4:7]
score[score['高数成绩']>80]
需要注意的是括号内的索引是包左不包右的 。
0:8
表示选取第0行到第7行的数据,4:7
表示选取第4列到第6列的数据。
当然,我们也可以直接指出要获取哪几列的数据,因此代码还可以这样写:
score.iloc[0:8][['班级','平均成绩','总成绩']]
得到结果是相同的。
接下来介绍条件筛选,我们可以设置条件,在制定的列中筛选出符合条件的数据。
例如,要筛选高数成绩大于95的学生:
score[score['高数成绩']>95]
运行结果如下:
我们也可以进行多个条件筛选 ,例如我要筛选出高数成绩95以上,且是一班的同学:
score[(score['高数成绩']>95)&(score['班级']==1)]
需要注意的是&前后的内容需要用括号括起来!以下是运行结果:
2、数据排序
我们可以调用sort_values( )函数进行排序。例如,我们对高数成绩由高到低排序:
score.sort_values(by='高数成绩',ascending=False)
"by="的后面添加需要排序的列名,ascending=False指出由高到低排序,如果省略Python将自动地由低到高排序。
代码运行后结果如下:
3、数据增删
在数据处理时我们常常需要添加新的数据或者删除错误数据,这里简单介绍一下数据增删的操作。
例如,我们想在表格中增加小王同学的成绩信息,就可以使用loc添加行:
score.loc[118]=['小王','89','88','90','1','89','267','1','合格']
代码打印如下:
如果想新增一列,则可以这样写:
score['年级']=2022
表格中多了年级这一列,并且每个同学的年级都是2022。
要修改特定的值依然可以通过loc来操作。例如,我要将小王的年级改为2023年:
score.loc[score['姓名'] == '小王', '年级'] = 2023
接下来介绍如何删除指定的列,共有两种方法:
1. 使用pop( )方法:
score.pop('总成绩‘)
2. 使用drop( )方法
score=score.drop(columns=['总成绩'])
程序运行后,总成绩这一列就被删除了。