使用熊猫以十进制增量来计算装箱平均值

问题描述 投票:0回答:1

我有一个熊猫数据框,我想为其计算合并平均值。为了对数据进行装箱,而不是使用箱的数量,我正在寻找一种能够指定箱尺寸的解决方案(可能是缸套)。例如,此数据的示例:

                A     B
               0.1   4.2
               0.15  2.0
               0.17  3.0 
               0.2   6.4
               0.3   1.0
               0.35  5.0
               0.4   10.0
               0.43  2.0
               0.5   8.0

我想为列A指定bin_size=0.1,将以下数据帧作为我的合并平均值:

                   A       B                          
    (0.1,0.2)     0.14     3.06
    (0.3,0.4)     0.35     5.33
    (0.4,0.5)     0.44     6.66

如果要指定垃圾箱的数量,我可以通过以下方法解决:

    groups = df.groupby(pd.cut(df.A, bins))
    df2 = pd.DataFrame(groups.mean())

但是,正如我所说,我正在寻找一种解决方案,在其中指定垃圾箱的大小。也许重要的是要强调我的数据集有33961行。

python pandas bin
1个回答
0
投票

您可以使用等分0.1的numpy排列来定义de bins

ranges = np.arange(df.A.min() - 0.1, df.A.max() + 0.1, 0.1)  #[0, 0.1, 0.2, 0.3 ...] 
groups = df.groupby(pd.cut(df.A, ranges))
groups.mean()


#               A           B
#  A        
# (0.0, 0.1]    0.100000    4.2
# (0.1, 0.2]    0.173333    3.8
# (0.2, 0.3]    0.300000    1.0
# (0.3, 0.4]    0.375000    7.5
# (0.4, 0.5]    0.465000    5.0
© www.soinside.com 2019 - 2024. All rights reserved.