首页 >后端开发 >Python教程 >python学习002-pandas VS excel给成绩赋值等级

python学习002-pandas VS excel给成绩赋值等级

fs哆哆
fs哆哆原创
2020-05-09 21:12:26250浏览

【问题】有一张成绩表如下,在总分后面添加一列,按如下要求输入等级

0.png等级如下:

 成绩
等级
90以上 A
80-90 B
60-79 C
0-59 D

【知识点】

apply函数

apply函数是`pandas`里面所有函数中自由度最高的函数。该函数如下:

DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, args=(), **kwds)

该函数最有用的是第一个参数,这个参数是函数,相当于C/C++的函数指针。

这个函数需要自己实现,函数的传入参数根据axis来定,比如axis = 1,就会把一行数据作为Series的数据

结构传入给自己实现的函数中,我们在函数中实现对Series不同属性之间的计算,返回一个结果,则apply函数

会自动遍历每一行DataFrame的数据,最后将所有结果组合成一个Series数据结构并返回。

【代码】

```python

# -*- coding: UTF-8 -*-

import pandas as pd

def get_letter_grade(score):

    if score>=90:

        return "A"

    elif score>=80:

        return "B"

    elif score>=60:

        return "C"

    else:

        return "D"

d=pd.read_excel('pandas VS excel给成绩赋值等级.xlsx')

print(d)

d['等级']=d['总分'].apply(lambda x: get_letter_grade(x))

print(d)

d.to_excel('pandas VS excel给成绩赋值等级_out.xlsx',index=False)

print("done")

```

过程解析:

1.把Excel成绩读入打印出来为

1.png

2.d['等级']=d['总分'].apply(lambda x: get_letter_grade(x))

新建一个“等级“的列,并赋值等级如下

2.png

3.

d.to_excel('pandas VS excel给成绩赋值等级_out.xlsx',index=False)

输出为excel文件内容如下

3.png

以上是python学习002-pandas VS excel给成绩赋值等级的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn