我在多索引数据框上尝试了以下代码: 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')
我得到了(这与我想要的非常接近):
但我仍然希望首先聚合该组并计算平均值。其次,我想只绘制那些带有索引' sample'
的行数据框:enter link description here
有任何建议怎么做?
答案 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')