在做数据分析时,有时候我们想要把某个属性按范围分组,在对分组后对应的另一个属性做统计分析,比如求和,求平均等分析。
例如下面的数据
这里有A B两列数据,我们希望把A按范围分割成多组,比如0-10,10-20,20-50....如此等等,然后分别计算0-10,10-20....这个范围B列数据的和或者平均值,然后再画出直方图,我们该如何做呢?
import pandas as pdimport numpy as npimport matplotlib.pyplot as pltdf = pd.DataFrame({'A': list(range(200)), 'B': np.random.randn(200)})bins = [0, 10, 20, 50, 80, 100, 120, 140, 160, 180, 200]dff = df.groupby(pd.cut(df['A'], bins=bins))['B'].sum()dff.plot(kind='bar')plt.show()
结果如下
如果要统计平均值,只需把sum函数换为mean即可,同样如果要计数的话就是count函数