需求
将如下每个学生三次测试的成绩求和后排序,并显示名次:
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赋予列表值可以重新设置索引列.