首页 > 解决方案 > 如何从另一列的范围计算一列的平均值

问题描述

我有一个包含两列距离(m)和高度(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

有没有人有任何可以帮助我的建议?谢谢!

标签: pythonpandas

解决方案


那就是您有错误的地方:.min.

可以做些什么:

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

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

在此处输入图像描述


推荐阅读