在python中查找每16行中最频繁的值

问题描述

我有一个描述800人身高的数据框,我想查找每16个人中最常见的身高。我知道我可以使用以下脚本来查找最频繁的值:

df['height'].value_counts().idxmax()

但是它只会给我一个最常见的身高。我已经尝试过以下脚本来查找每16行的频繁高度:

grouper = df.groupby(df.index // 16)
df1 = grouper.agg(
       df['height'].value_counts().idxmax()
)

但是它给我一个错误,说代码找不到“高度”。

还有其他方法可以找到python中每16行最频繁的值吗?

谢谢

解决方法

您可以执行以下操作(假设索引的范围是0到n-否则执行两次reset_index()

df['groups'] = df.reset_index()['index'] // 16
df.groupby('groups').max()