小编MEd*_*win的帖子

如何在分类数据框列上应用 python lamda 函数

我们如何在这个分类数据框上应用 lambda 函数?请注意,等级是分类的。我期待那些高于 C 的人“通过”。相反,它显示“失败”。

import pandas as pd
dfg = pd.DataFrame(['A+', 'A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'C-', 'D+', 'D'],
                  index=['excellent', 'excellent', 'excellent', 'good', 'good', 'good', 'ok', 'ok', 'ok', 'poor', 'poor'])
dfg.rename(columns={0: 'Grades'}, inplace=True)
dfg['Grades'] = dfg['Grades'].astype('category',
                             categories=['D', 'D+', 'C-', 'C', 'C+', 'B-', 'B', 'B+', 'A-', 'A', 'A+'],
                             ordered=True)
def Assess(row):
     if row>'C':
        return 'Pass'
     return 'Fail'

dfg['Asses'] = dfg.apply(lambda x: Assess(x.Grades), axis=1)

dfg
Run Code Online (Sandbox Code Playgroud)

查看结果

Grades  Asses
excellent   A+  Fail
excellent   A   Fail
excellent   A-  Fail
good    B+ …
Run Code Online (Sandbox Code Playgroud)

python pandas

0
推荐指数
1
解决办法
292
查看次数

标签 统计

pandas ×1

python ×1