如何从另一列的范围中的一列计算平均值

时间:2019-07-10 12:40:15

标签: python pandas

我有一个包含两列Distance(m)和height(m)的数据框。

我想根据0.04439 m的距离来计算最大,最小和平均高度值。

距离是一个从0到0.81m的连续序列,每个0.00222m,长度共403个值。

目的是从每个0.0439m距离(0到0.81m之间的连续距离序列)的18个间隔中提取18个高度值(最大最小平均值)

然后,创建每个距离间隔及其高度的最大最小值和平均值的数据框(2列)

Distance(m) = [0, 0.0022, 0.0044, .... 0.81 ]
Height(m) = [ 0, 0.1, 0.5, 0.4, 0.9, .... 0.1]

数据框

Distance(m) Hauteur(m)
0   0.00000 0.024711
1   0.00222 0.027125
2   0.00444 0.027961
3   0.00592 0.028880
4   0.00814 0.029417
5   0.01036 0.030100
6   0.01184 0.031440
7   0.01406 0.033486
8   0.01628 0.035371
9   0.01702 0.034865
10  0.01850 0.034976
11  0.02072 0.035458
12  0.02220 0.035132
13  0.02442 0.035541
14  0.02516 0.034973
15  0.02738 0.034044
16  0.02886 0.033878
17  0.03108 0.032232
18  0.03256 0.033035
19  0.03478 0.030564
20  0.03700 0.031252
21  0.03848 0.030833
22  0.04070 0.031696
23  0.04144 0.030501
24  0.04366 0.029986
up to 403 values



df3=df1[['Distance(m)', 'Hauteur(m)']]

bins = [0, 0.0439, 0.0878, 0.1317, 0.1756, 0.2195, 0.2634, 0.3073, 0.3512, 0.3951, 0.439, 0.4829, 0.5268, 0.5707, 0.6146, 0.6595, 0.7024, 0.7463, 0.7902]


df3['min'] = pd.cut(df3['Hauteur(m)'].min, bins)
df3['min']

错误显示:Input array must be 1 dimensional

有人对我有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:1)

这是您遇到错误的地方:.min

相反,可以做什么:

df3['categories'] = pd.cut(df3['Hauteur(m)'], bins)

(df3.groupby('categories')['Distance(m)', 'Hauteur(m)'].agg(
    {'max': 'max', 
     'min': 'min', 
     'average': 'mean'}))

enter image description here