如果满足某些条件,则进行分组,然后进行计算

时间:2020-10-06 17:26:50

标签: python pandas

如果满足某些条件,我将尝试使用.groupby()语句,然后对该分组数据集执行计算。输入数据采用以下格式

input Data

我正在尝试按字母代码(AB,CD或EF)对每个学生进行分组,然后计算给定学生字母组中该时期的平均分数。 例如,如果我们对学生5进行了分析,则代码应将所有在Yr_2_Test列中具有“ EF”的学生分组,并从“得分24个月”列中计算这些学生的平均分数。重要的是要注意,只有具有至少2年数据的学生才应包括在该组学生中(应包括学生3、5、9和10,但不包括学生2)

下面是我尝试过的代码,但到目前为止我没有成功。我非常感谢我能得到的任何帮助。

def grouping(df,Yr_3_Test,Yr_2_Test,Yr_1_Test):
    if Yr_3_Test != 'None':
        return df.groupby(df.Yr_3_Test).mean(Score_36_Month)
    elif Yr_2_Test != 'None':
        return df.groupby(df.Yr_2_Test).mean(Score_24_Month)
    else:
        return df.groupby(df.Yr_1_Test).mean(Score_12_Month)

1 个答案:

答案 0 :(得分:0)

首先,您要按字母代码从学生组中选择人员,然后选择要对其进行操作的score_group,最后计算平均值。

def func(group_name, score_group, lettercode):
    return df[df[group_name] == lettercode][score_group].agg("mean")