python或者jupyter

将练习3中处理后的数据,计算三位学生三科的平均分,并将平均分添加在data new的mean列中
2、将平均分data new mean 按照“mean-60-failed,60-<mean <75-
median75 s-<mean<85-great85-mean-excellent”的次序,确定三位学生的评级,
一起的这两个问题

 
import pandas as pd
import numpy as np
 
columns = ['chinese', 'math', 'english']
data = pd.DataFrame([[81.5, 76.5, 73.5], [71, 68, np.nan], [71, 68, np.nan], [np.nan, np.nan, np.nan], [np.nan, 96.5, 93.5]], columns=columns)
 
# 1. 保留非 NA 值>=2的行,删除重复行,将处理后的结果赋值给 data_new
data_new = data.dropna(thresh=2).drop_duplicates()

# 2. 应用 'chinese''english' 的均值填充剩下的 NA
data_new['chinese'].fillna(data_new['chinese'].mean(), inplace=True)
data_new['english'].fillna(data_new['english'].mean(), inplace=True)
 
# 计算平均分
data_new['mean']=round(data_new[columns].mean(axis=1),2)

#设置等级
def setLevel(v):
    if v<60:
        return 'failed'
    if 60<=v<75:
        return 'median'
    if 75<=v<85:
        return 'great'
    return 'excellent'
 
data_new["Level"]=data_new["mean"].apply(setLevel)#计算学生等级放到Level列

print(data_new)#打印结果

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    解决方案:

    计算每位学生的平均分并添加至data new的mean列中:

    import pandas as pd
    
    # 读取经过处理后的数据
    data = pd.read_csv("processed_data.csv")
    
    # 计算每位学生的平均分
    data["mean"] = data.iloc[:, 1:].mean(axis=1)
    
    # 显示添加平均分后的data new
    print(data)
    

    将三位学生的平均分按照要求的评级方式确定评级:

    # 添加评级列并设定初始值为Unknown
    data["评级"] = "Unknown"
    
    # 根据评级标准确定三位学生的评级
    for index, row in data.iterrows():
        if row["mean"] < 60:
            data.at[index, "评级"] = "failed"
        elif 60 <= row["mean"] < 75:
            data.at[index, "评级"] = "60-<mean<75"
        elif 75 <= row["mean"] < 85:
            data.at[index, "评级"] = "median75 s-<mean<85-great85"
        elif row["mean"] >= 85:
            data.at[index, "评级"] = "excellent"
    
    # 显示添加评级后的data new
    print(data)
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632