按 python 中的索引对二维数据进行分箱

binning two dimensional data by its index in python

我如何根据数据索引对一些数据进行分类,在 python 3

假设我有以下数据

1   0.5
3   0.6
5   0.7
6   0.8
8   0.9
10  1
11  1.1
12  1.2
14  1.3
15  1.4
17  1.5
18  1.6
19  1.7
20  1.8
22  1.9
24  2
25  2.1
28  2.2
31  2.3
35  2.4

我将如何获取这些数据并对两列进行分箱,以便每个分箱中都有 n 个值,然后对每个分箱中的数字进行平均并输出它们。 例如,如果我想按 4

对值进行分箱

我会取前四个数据点:

1   0.5
3   0.6
5   0.7
6   0.8

这些的平均值为:3.75 0.65

我会通过下一组四个继续往下走,依此类推 直到我对所有四组进行平均得到这个:

3.75    0.65 
10.25   1.05
16      1.45
21.25   1.85
29.75   2.25

如何使用 python

您可以 "bin" 将索引分成 4 组并在索引中调用 groupby

df.groupby(df.index // 4).mean()
       0     1
0   3.75  0.65
1  10.25  1.05
2  16.00  1.45
3  21.25  1.85
4  29.75  2.25

基于 numpy reshape

pd.DataFrame([np.mean(x.reshape(len(df)//4,-1),axis=1) for x in df.values.T]).T
       0     1
0   3.75  0.65
1  10.25  1.05
2  16.00  1.45
3  21.25  1.85
4  29.75  2.25