绘制分组数据帧的平均值

时间:2014-07-08 13:12:45

标签: python pandas

我在多索引数据框上尝试了以下代码:     data.header = [' name',' pH',' salt',' id']     对于grp,data.df.groupby中的val(level = data.header):

    print(val['concentration'])

我得到了输出:

name    pH   salt  id
sample  7.5  50    1     0.229230
                   1     0.230369

实际上我希望得到汇总的意思:

name    pH   salt  id
sample  7.5  50    1     0.2298

以下代码无效print(val['concentration'].apply(lambda x: x.mean()))print(val['concentration'].aggregate(np.mean)

我能做到:

for grp, val in data.df.groupby(level=data.header[0:-1])['concentration']:
#print(val)
plt.plot(val,'o')

我得到了(这与我想要的非常接近):

enter image description here

但我仍然希望首先聚合该组并计算平均值。其次,我想只绘制那些带有索引' sample'

的行

数据框:enter link description here

有任何建议怎么做?

1 个答案:

答案 0 :(得分:0)

好的,这个解决方案有效:

df = data.df.groupby(level=data.header).aggregate(np.mean).copy()

从这里开始,我可以做所需的情节等。

for grp, val in df.groupby(level=data.header[0:-1])['concentration']:
    #print(val)
    plt.plot(val,'o')