绘制 Panda 数据帧子集的均值

假设有一大组数据,例如


   Height (m)  My data

0          18      5.0

1          25      6.0

2          10      1.0

3          13      1.5

4          32      8.0

5          26      6.7

6          23      5.0

7           5      2.0

8           7      2.0

我想绘制“我的数据”的平均值(如果可能的话,标准偏差)作为高度的函数,在范围 [0,5),[5,10),[10,15) 和很快。


任何的想法?我尝试了不同的方法,但都不起作用


收到一只叮咚
浏览 130回答 2
2回答

繁华开满天机

如果我理解正确的话:# Precompute bins for pd.cutbins = list(range(0, df['Height (m)'].max() + 5, 5))# Cut Height into intervals which exclude the right endpoint, # with bin edges at multiples of 5df['HeightBin'] = pd.cut(df['Height (m)'], bins=bins, right=False)# Within each bin, get mean, stdev (normalized by N-1 by default),# and also show sample size to explain why some std values are NaNdf.groupby('HeightBin')['My data'].agg(['mean', 'std', 'count'])            mean       std  countHeightBin[0, 5)       NaN       NaN      0[5, 10)     2.00  0.000000      2[10, 15)    1.25  0.353553      2[15, 20)    5.00       NaN      1[20, 25)    5.00       NaN      1[25, 30)    6.35  0.494975      2[30, 35)    8.00       NaN      1

慕侠2389804

如果我理解正确,这就是您想要做的:import pandas as pdimport numpy as npbins = np.arange(0, 30, 5) # adjust as desireddf_stats = pd.DataFrame(columns=['mean', 'st_dev']) # DataFrame for the resultsdf_stats['mean'] = df.groupby(pd.cut(df['Height (m)'], bins, right=False)).mean()['My data']df_stats['st_dev'] = df.groupby(pd.cut(df['Height (m)'], bins, right=False)).std()['My data']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python