熊猫:在以后的实验中计算当前实验参与者的更高排名(上)



学习实验

在一系列的学习实验中,我想统计每个实验中在后续实验中提高成绩的参与者人数(排名1最高(。此外,我还想统计一下每个实验中后来达到最高排名的参与者人数。

这是我加载到pandas数据帧(df_learning(中的学习实验csv文件的一个简短的、经过净化的版本。

排名<1><1><1><2>
实验 受试者
A Alpha
A Bravo 2
A Charlie 3
A Delta 4
回声 5
B Alpha
B Charlie 2
B 回声 3
B 狐步 4
B 高尔夫 5
B 印度 6
B 朱丽叶 7
C 朱丽叶
C Bravo
C 查理 3

您可以使用groupby.cummax,然后使用布尔索引:

m = df['Rank'].sub(df.groupby('Subject')['Rank'].cummax()).lt(0)
improved_rank = df.loc[m, 'Subject'].unique()

输出:['Charlie', 'Echo', 'Juliet']

reached_top_rank = df.loc[m&df['Rank'].eq(1), 'Subject'].unique()

输出:['Juliet']

最新更新