我有一个叫做resulttable的df,看起来像:
df Index Cybi_Tag Tag Exp. m/z Intensity Norm_Intensity
114 17 C09.xls 1013.328 1000 0.5
114 17 C10.xls 1013.325 1100 0.6
114 17 D09.xls 1013.33 1200 0.7
114 17 D10.xls 1013.331 1300 0.8
114 18 C11.xls 1013.328 2000 0.9
114 18 C12.xls 1013.326 2100 1.0
114 18 D11.xls 1013.326 2200 1.1
114 18 D12.xls 1013.328 2300 1.2
180 17 C09.xls 1079.47 3000 1.3
180 17 D09.xls 1079.432 3200 1.5
180 17 D10.xls 1079.446 3300 1.6
180 18 C11.xls 1079.452 4000 1.7
180 18 C12.xls 1079.442 4100 1.8
其中,df Index values是将resulttable导出到csv文件时数据帧的索引,Cybi_标记值作为标记号添加到数据帧中,以对标记进行分组。标记列包含数据来自的文件名。在
我的目标是计算df索引中每个Cybi_标记的强度和常模强度值的平均值、标准值和CV值。因此,例如,对于df Index 114,Cybi_Tag 17,我想将1013.328-ish值(So C09.xls、C10.xls、D09.xls、D10.xls)分组,然后求出强度和标准强度值的平均值。
我想要的表格应该是:
^{pr2}$对于上表
我尝试在df Index和Cybi_Tag上使用groupby:
resulttable_calc = resulttable.groupby(level=0)['Cybi_Tag']
或者
resulttable_calc = resulttable.groupby['Cybi_Tag']
但是,第一个代码发出一条错误消息:Column not found:Cybi_Tag。第二个代码不会产生错误,但它将整个Cybi_标记分组,因此它将C09、C10、D09、D10分组为所有Exp.m/z值,因此最后只剩下两行,这不是我想要的。在
resulttable_calc = resulttable.groupby(level= 0&1)
上面的代码只按df索引分组,因此它将Exp.m/z分组,而不考虑标记值。在
我认为您需要
list
级别,用,
分隔:如果可以使用最新版本的pandas,请使用:
^{pr2}$然后通过
map
在列中使用remove MultiIndex进行聚合:相关问题 更多 >
编程相关推荐