我有两个数据帧,如下所示:
import pandas as pd
import numpy as np
import string
size = 5
student_names = [''.join(np.random.choice(list(string.ascii_lowercase), size=4)) for i in range(size)]
marks = list(np.random.randint(50, high=100, size=size))
df1 = pd.DataFrame({'Student Names': student_names, 'Total': marks})
grade_leters = ['A+', 'A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'C-', 'D+', 'D',
'D-', 'F']
grade_minimum_value = [95, 90, 85, 80, 75, 70, 65, 60, 55, 50, 45, 40, 0]
df2 = pd.DataFrame({'Grade Letters': grade_leters, 'Minimums': grade_minimum_value})
df1
Student Names Total
0 cjpv 83
1 iywm 98
2 jhhb 87
3 qwau 70
4 ppai 82
df2
Grade Letters Minimums
0 A+ 95
1 A 90
2 A- 85
3 B+ 80
4 B 75
5 B- 70
6 C+ 65
7 C 60
8 C- 55
9 D+ 50
10 D 45
11 D- 40
12 F 0
我想把成绩字母作为一个新的列给df1
。例如,总成绩为83分的学生cjpv
将收到B+
的成绩字母,因为83分介于80分(含)和85分(不含)之间。你知道吗
所需输出如下。你知道吗
Student Names Total Grade
0 cjpv 83 B+
1 iywm 98 A+
2 jhhb 87 A-
3 qwau 70 B-
4 ppai 82 B+
提前谢谢。我很抱歉,如果有类似的问题,但是,我找了很长时间后没有找到一个。你知道吗
将^{} 与动态值bin和
df2
列中的标签一起使用,还为左关闭的bin添加了right=False
:就像@Henry Yik在这里评论的可能用法^{} :
相关问题 更多 >
编程相关推荐