You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将混合CGPA与百分比值的10_grade列转换为百分比?求Python实现代码

解决混合百分比与CGPA数据的统一转换问题

我来帮你搞定这个问题!处理混合了百分比和CGPA的成绩列确实有点棘手,不过用Python的Pandas库可以轻松实现统一转换。这里默认你的CGPA是印度CBSE体系的10分制(这是10年级成绩最常见的情况),CGPA转百分比的公式是 CGPA × 9.5 —— 如果你的评分体系不同,只需要替换这个转换系数就行。

实现步骤与代码

首先,我们需要先区分每个条目是CGPA还是百分比,再针对性转换。以下是完整的可运行代码:

import pandas as pd

# 模拟你的数据集(实际使用时替换成你读取的真实数据,比如pd.read_csv("your_data.csv"))
data = {
    "10_grade": [85, "92%", 8.7, "7.5", "88%", 9.3, 78]
}
df = pd.DataFrame(data)

def convert_to_percentage(grade):
    # 处理字符串类型的输入,先清理并转换为数值
    if isinstance(grade, str):
        # 去掉百分号,转换为浮点数
        grade = grade.replace("%", "").strip()
        try:
            grade = float(grade)
        except ValueError:
            # 如果无法转换为数值,返回NaN方便后续清理
            return pd.NA
    
    # 判断是CGPA还是百分比:CGPA通常在0-10之间(10分制)
    if 0 <= grade <= 10:
        # CGPA转百分比(CBSE体系用9.5,其他体系可修改系数)
        return grade * 9.5
    else:
        # 已经是百分比,直接返回
        return grade

# 应用转换函数到目标列,生成统一的百分比列
df["10_grade_percentage"] = df["10_grade"].apply(convert_to_percentage)

# 查看转换后的结果
print(df)

代码细节说明

  • 数据预处理:先处理字符串格式的成绩(比如带%的百分比),去掉符号后转换为数值,同时处理无效值(返回pd.NA,方便后续用dropna()清理)。
  • 判断逻辑:通过数值范围区分CGPA(0-10)和百分比(大于10的数值),如果是CGPA就用对应公式转换,否则直接保留原百分比数值。
  • 灵活调整:如果你的CGPA是其他体系(比如4分制),只需要修改判断范围(比如0 <= grade <=4)和转换系数(比如grade ×25)即可。

内容的提问来源于stack exchange,提问作者GURPINDER SINGH MUTTAR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 09:09:11