首页 > 技术文章 > df根据某几列的值比较去赋值(构建新的一列)

cgmcoding 2020-11-06 10:41 原文

比如说,前【2,5】列分别是每个学科的成绩,第1列是学号,我们找出每个学生的最高分的学科,则可以如下表达

def find_max(df):
    x = df.col1 
    y = df.col2 
    z = df.col3 
    n = df.col4 
    if min(x,y,z,n) == x:
        tmp = '数学'
    elif min(x,y,z,n) == y:
        tmp = '语文'
    elif min(x,y,z,n) == z:
        tmp = '英语'
    elif min(x,y,z,n) == n:
        tmp = '理综'
    else:
        tmp = None
    return tmp
df['max_couse'] = df.apply(find_max ,axis = 1)

 

推荐阅读