我有一个DF称为resulttable,看起来像:蟒蛇熊猫使用GROUPBY使用两个标准/列
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指数值均为当resulttable导出为CSV文件中的数据帧的指数,和Cybi_Tag值作为标记号被添加到数据框以对标记进行分组。标记列包含数据来自的文件的名称。
我的目标是计算df指数中每个Cybi_Tag的Intensity和Norm_Intensity值的平均值,标准偏差和CV。因此,例如,对于df Index 114,Cybi_Tag 17,我想将1013.328-ish值(如C09.xls,C10.xls,D09.xls,D10.xls)分组,并找出Intensity和Norm_Intensity值的平均值。
我表我想应该是这样的:
df Index Cybi_Tag Exp. m/z Intensity Norm_Intensity
114 17 1013.329 1150 0.65
114 18 1013.327 2150 1.05
180 17 1079.449 3167 1.467
180 18 1079.455 4050 1.75
因此,对于上面的表格,
我试图做的DF指数和Cybi_Tag GROUPBY:
resulttable_calc = resulttable.groupby(level=0)['Cybi_Tag']
或
resulttable_calc = resulttable.groupby['Cybi_Tag']
但是,第一个代码会发出Column not found的错误消息:Cybi_Tag。第二个代码不会产生错误,但会将整个Cybi_Tag分组,因此它将所有Exp分组为C09,C10,D09,D10。 m/z值,所以我在最后留下两行,这不是我想要的。
resulttable_calc = resulttable.groupby(level= 0&1)
上面的代码只按df指数分组,所以它将Exp分组。 m/z,而不管标签值如何。
再次感谢你Jez !.我实际上是从网上的一张熊猫备忘单中发现的,我需要'level = [0,1]'来分组多列。 –
是的,很高兴可以提供帮助。这个问题是简单的,但以前是非常复杂的;) – jezrael
是的我想我应该把我的问题分解成片断,因为我也困惑自己以及 –