当前位置:首页>python>PY函数示例:使用Python代码按分组自动获取相应的等级

PY函数示例:使用Python代码按分组自动获取相应的等级

  • 2026-10-11 08:04:20
PY函数示例:使用Python代码按分组自动获取相应的等级
学习Excel技术,关注微信公众号:
excelperfect

标签:PY函数

使用Excel的PY函数可以将数据分类分组,例如根据分数将成绩归入相应的等级。示例数据如下图1所示,左侧单元格区域A2:B7是成绩等级及相应的分数段,右侧是一些成绩分数,现在需要将这些分数自动归入相应的成绩等级。

图1

首先,对单元格区域A2:B7创建了一个用于引用的区域。选择单元格A1,输入=py,按Tab键,或者直接按Ctrl+Alt+Shift+P组合键,如下图2所示。

图2

在其中输入Python代码:

df_ref=xl("A2:B7", headers=True)

如下图3所示。

图3

按Ctrl+Enter键执行Python代码,创建名为df_ref的数据框,如下图4所示。

图4

同样,选择单元格D1,按上述方式激活PY函数,并输入代码:

df_grades=xl("D2:D7", headers=True)

如下图5所示。

图5

按Ctrl+Enter键执行Python代码,创建名为df_grades的数据框,如下图6所示。

图6

选择任意单元格,示例为单元格G2,按上述方式激活PY函数,并输入代码:

import pandas as pd#df_def包含A2:B7(成绩等级, 分数段)#df_grades包含D2:D7(分数)def categorize_grade(grade, ref_df):    grade = int(grade)    for _, row in ref_df.iterrows():        grade_range = row['分数段']        if grade_range.endswith('+'): # 处理90+            if grade >= int(grade_range.replace('+', '')):                return row['成绩等级']        elif '-' in grade_range:            start, end = map(int, grade_range.split('-'))            if start <= grade <= end:                return row['成绩等级']    return "Unknown"# 应用分类df_grades['成绩等级'] = df_grades['分数'].apply(lambda x: categorize_grade(x, df_ref))# 返回结果df_grades[['分数', '成绩等级']]

按Ctrl+Enter键执行代码,结果如下图7所示。

图7

选择公式编辑栏左侧的下拉箭头,选取“Excel值”命令,如下图8所示。

图8

结果如下图9所示。

图9

当你改变单元格区域D3:D7中的分数时,单元格区域G3:H7中的值相应改变。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。

最新文章

随机文章