需求
将如下每个学生三次测试的成绩求和后排序,并显示名次:
1. 导入数据
1 | import pandas |
在本案例中,我们将使用pandas
作为数据处理的第三方库(安装命令:pip install pandas
).
2. 成绩求和
1 | sum_score = [i for i in df.sum(axis=1)] |
df.sum(axis=1)
:指对每一行的数值进行求和,它所返回的对象为Series
,这是一个一维数组,类似于列表.
[i for i in df.sum(axis=1)]
:我们遍历Series
中的每一项,获得各行成绩求和的结果,将其转化为列表的形式,最后赋予sum_score
.
df["所有测试成绩总分"] = sum_score
:在原有的数据表中新增所有测试成绩总分
这一列,它的值为列表sum_score
.
3. 排序总分 显示名次
1 | df = df.sort_values(by="所有测试成绩总分", ascending=False) |
df = df.sort_values(by="所有测试成绩总分", ascending=False)
:以所有测试成绩总分
这一列的数值为依据,进行排列,ascending=False
决定排序方式为降序.
df.index = range(1, len(df)+1)
:为数据表重新设置索引,显示名次.
4. 保存结果
1 | df.to_excel("output.xlsx") |
将结果输出到文件output.xlsx
.output.xlsx
如下:
5. 完整代码
1 | import pandas |
总结
df.sum
函数用于对目标数据表的排列,当传入axis=1
时,求各行的和;不传axis
时,求各列的和.
df.sort_values
用于对某一列的排序工作,by
指定目标列,ascending
决定是否为升序或降序:当其值为True
时,按升序排列;反之亦然.
df.index
赋予列表值可以重新设置索引列.