【问题标题】:binning two dimensional data by its index in python在python中按索引对二维数据进行分箱
【发布时间】:2018-05-07 02:44:28
【问题描述】:

如何在 python 3 中根据数据的索引对一些数据进行 bin 处理

假设我有以下数据

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做到这一点

【问题讨论】:

    标签: python pandas average binning


    【解决方案1】:

    基于numpyreshape

    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
    

    【讨论】:

      【解决方案2】:

      您可以将索引“分箱”成 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-03-30
        • 2012-01-25
        • 1970-01-01
        • 1970-01-01
        • 2022-01-24
        • 1970-01-01
        • 2013-02-15
        相关资源
        最近更新 更多