def ZahlOccurence_1(x):
    return pd.Series({'All': len(x['StudentID']), 'Part': sum(x[
        'Participated'] == 'yes'), 'Pass': sum(x['Passed'] == 'yes'),
        'test': x['testValue'].mean()})
d1.groupby('ExamenYear').apply(ZahlOccurence_1)
Таблицы частот в pandas (например, plyr в R)