标签: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社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。