【问题标题】:find the most frequent value of every 16 rows in python在python中找到每16行中出现频率最高的值
【发布时间】:2020-12-07 05:19:29
【问题描述】:

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

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

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

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

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

有没有其他方法可以在python中找到每16行中出现频率最高的值?

谢谢

【问题讨论】:

  • df.groupby(df.index//16).apply(lambda d: d['height'].value_counts().idxmax())?
  • 啊,谢谢!它有效

标签: python pandas statistics pandas-groupby frequency


【解决方案1】:

你可以做这样的事情(假设你的索引是从 0 到 n 的范围 - 否则做两次reset_index()):

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

【讨论】:

    猜你喜欢
    • 2019-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    • 2015-07-01
    • 2012-11-03
    • 2018-03-24
    相关资源
    最近更新 更多