Python 大熊猫任意分布的频率均值计算

Python 大熊猫任意分布的频率均值计算,python,python-3.x,pandas,mean,frequency-analysis,Python,Python 3.x,Pandas,Mean,Frequency Analysis,我有一个很大的数据集,其值范围为1到25,分辨率为o.1。分布在性质上是任意的,模式值为1。示例数据集可以如下所示: 1, 1, 23.05, 19.57, 1, 1.56, 1, 23.53, 19.74, 7.07, 1, 22.85, 1, 1, 7.78, 16.89, 12.75, 15.32, 7.7, 14.26, 15.41, 1, 16.34, 8.57, 15, 14.97, 1.18, 14.15, 1.94, 14.61, 1, 15.49, 1, 9.18, 1.71,

我有一个很大的数据集,其值范围为
1到25
,分辨率为
o.1
。分布在性质上是任意的,模式值为1。示例数据集可以如下所示:

1,
1,
23.05,
19.57,
1,
1.56,
1,
23.53,
19.74,
7.07,
1,
22.85,
1,
1,
7.78,
16.89,
12.75,
15.32,
7.7,
14.26,
15.41,
1,
16.34,
8.57,
15,
14.97,
1.18,
14.15,
1.94,
14.61,
1,
15.49,
1,
9.18,
1.71,
1,
10.4,
如何评估不同范围(0-0.5、0.5-1等)的计数,并找出它们在pandas、Python中的频率平均值

预期产出可以是

值范围(f)发生率(n)f*n

您需要进行装箱,然后将
CategoricalIndex
转换为
IntervalIndex
,用于
mid
值,按
mul
多列,求和和和和最后除以标量:

df = pd.DataFrame({'col':[1,2.2,2.8,3.7,5.5,5.8,4.3,2.7,3.5,1.8,5.9]})
print (df)
    col
0   1.0
1   2.2
2   2.8
3   3.7
4   5.5
5   5.8
6   4.3
7   2.7
8   3.5
9   1.8
10  5.9


预期输出是什么?它给出了特定bean的算术平均值。我的要求是整个数据集的频率平均值。它是:[总和(范围的中值*出现次数)]/出现总数。@SANDIPANDAWN-您能添加预期的输出吗?如果只创建10行样本以便于验证,可能会更好。谢谢。@SANDIPANDAWN-你能修改这个问题吗,因为评论的格式不好?我已经修改了这个问题以合并演示输出。感谢@jezraelsuppose,有3个数据在2-3范围内,中间值为2.5。我们用2.5乘以3(3*2.5=7/2*1.5=3)。通过这种方式,我们可以将所有乘法数据相加,然后除以每个范围内发生的总数。这将给我数据集的平均频率。谢谢
df = pd.DataFrame({'col':[1,2.2,2.8,3.7,5.5,5.8,4.3,2.7,3.5,1.8,5.9]})
print (df)
    col
0   1.0
1   2.2
2   2.8
3   3.7
4   5.5
5   5.8
6   4.3
7   2.7
8   3.5
9   1.8
10  5.9
binned = pd.cut(df['col'], np.arange(1, 7), include_lowest=True)
df1 = df.groupby(binned).size().reset_index(name='val')
df1['mid'] = pd.IntervalIndex(df1['col']).mid
df1['mul'] = df1['val'].mul(df1['mid'])
print (df1)
            col  val     mid     mul
0  (0.999, 2.0]    2  1.4995   2.999
1    (2.0, 3.0]    3  2.5000   7.500
2    (3.0, 4.0]    2  3.5000   7.000
3    (4.0, 5.0]    1  4.5000   4.500
4    (5.0, 6.0]    3  5.5000  16.500

a = df1.sum()
print (a)
val    11.0000
mid    17.4995
mul    38.4990
dtype: float64

b = a['mul'] / a['val']
print (b)
3.49990909091