Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python提供了如何对具有相同索引值的行进行计算_Python_Pandas_Dataframe - Fatal编程技术网

python提供了如何对具有相同索引值的行进行计算

python提供了如何对具有相同索引值的行进行计算,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个名为Resultable的数据框架,它看起来像: df Index Tag Exp. m/z Intensity Norm_Intensity 114 C09.xls 1013.328 10000 0.125 114 C10.xls 1013.325 20000 0.115 114 C11.xls 1013.329

我有一个名为Resultable的数据框架,它看起来像:

df Index        Tag        Exp. m/z    Intensity    Norm_Intensity
114             C09.xls    1013.328    10000        0.125
114             C10.xls    1013.325    20000        0.115
114             C11.xls    1013.329    30000        0.128
180             C09.xls    1257.52     11000        0.215
180             C10.xls    1257.59     12000        0.220
196             C09.xls    1647.593    13000        0.432
196             C10.xls    1647.528    14000        0.450
196             C11.xls    1647.601    31000        0.585
其中,df索引值是打印或导出到xls时的索引值,Tag=str,Exp.m/z、Intensity和Norm_Intensity为64。标记值将来自指定文件夹中的文件名,因此它们可能会有所不同

如您所见,每个标记都包含类似的Exp.m/z值(如1013.328、1013.325、1013.329)及其相应的强度和Norm_强度值。这些m/z值被认为是相同的,我想知道是否有一种方法可以根据其df索引值对行值进行计算,例如平均值、标准差、CV。计算是否需要另一个数据帧并不重要

resulttable_calc = resulttable.groupby(resulttable.index)
group_result = resulttable_calc.agg({'Exp. m/z':'mean','Intensity':'mean', 'Norm_Intensity':'mean'})
似乎没有做我想做的。这样做的结果是:

df Index               Exp. m/z    Intensity    Norm_Intensity
(114, 'C09.xls')       1013.328    10000        0.125
(114, 'C10.xls')       1013.325    20000        0.115
(114, 'C11.xls')       1013.329    30000        0.128
(180, 'C09.xls')       1257.52     11000        0.215
(180, 'C10.xls')       1257.59     12000        0.220
(196, 'C09.xls')       1647.593    13000        0.432
(196, 'C10.xls')       1647.528    14000        0.450
(196, 'C11.xls')       1647.601    31000        0.585
编辑 打印输出(resultable.index)为:


我假设标签对应于每个标签

您的索引实际上是一个
多索引
。由于您要将其传递给
groupby()
,所以您将在
多索引的每个组合上生成一个分组。我假设您希望按
df Index
分组-如果是这样,您需要按
level=0
分组

试试这个:

resulttable_calc = resulttable.groupby(level=0)
group_result = resulttable_calc.agg({'Exp. m/z':'mean','Intensity':'mean', 'Norm_Intensity':'mean'})

“经验m/z”是什么意思?你怎么计算呢?我认为您可以使用
groupby
函数,该函数提供基于其他列values.Exp的计算结果,例如平均值、标准值。m/z不计算;它们来自我在代码中附加的文件。有没有办法在df索引值上使用groupby?我确实在代码中使用了groupby来生成可生成的数据帧。
df.index
的输出是什么?@Andrew L我编辑了真正起作用的帖子。非常感谢。我能买一本关于熊猫的书吗?我希望在这方面能学到更多depth@BongKyoSeo是的,韦斯·麦金尼我相信是《熊猫》的作者。他已经就此写了一本书。有没有办法在同一时间用另一个专栏来做这件事?现在我有了df索引和一个名为Cybi_标记的列。我试过做
resultable\u calc=resultable.groupby(level=0)['Cybi\u Tag']
,但它说找不到列:Cybi\u Tag。这是正确的语法。请记住列名区分大小写。
resulttable_calc = resulttable.groupby(level=0)
group_result = resulttable_calc.agg({'Exp. m/z':'mean','Intensity':'mean', 'Norm_Intensity':'mean'})