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