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