在 python 中找到每 16 行中出现频率最高的值

find the most frequent value of every 16 rows in python

我有一个描述 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()