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