如何根据一组 k 最近邻计算平均值?
Posted
技术标签:
【中文标题】如何根据一组 k 最近邻计算平均值?【英文标题】:How to compute the mean based on a grouping of k nearest neighbours? 【发布时间】:2019-04-02 15:41:49 【问题描述】:我有一个看起来像这样的数据框:
df =
Hour Production
12 45
15 50
18 89
21 56
12 49
16 55
18 23
21 44
12 33
15 95
17 76
22 89
25 97
我想按小时分组,然后取生产的平均值,但是,我想以这样一种方式分组,一个组可以占用 -/+ 1 小时。换句话说,产量应该是三组第 12 小时的产量平均值,第 15 和 16 小时的产量平均值,第 17 和 18 小时的产量平均值,第 17 和 18 小时的产量平均值第 21 和 22 小时,最后是第 25 小时
除了创建小时集群然后按集群分组之外,还有更好的方法吗?
【问题讨论】:
【参考方案1】:由于您的组间隔不均匀,请定义您的 bin 边缘并使用 pd.cut
对这些 bin 进行分组。
import pandas as pd
bins = [12, 15, 17, 19, 21, 23, 25, 26]
df.groupby(pd.cut(df.Hour, bins, right=False)).Production.mean()
输出:
Hour
[12, 15) 42.333333
[15, 17) 66.666667
[17, 19) 62.666667
[19, 21) NaN
[21, 23) 63.000000
[23, 25) NaN
[25, 26) 97.000000
Name: Production, dtype: float64
【讨论】:
以上是关于如何根据一组 k 最近邻计算平均值?的主要内容,如果未能解决你的问题,请参考以下文章