单个数据帧行的单向方差分析

2024-05-13 18:19:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在尝试对我的数据帧的每一行运行单向方差分析(共有519行,每行代表不同的生物分类群,每列代表不同的样本);然而,我不断地得到一个无效的语法错误,我相信我的错误在于我对行的选择。我对python和pandas还比较陌生,所以到目前为止,我的数据帧名称是subb1:

for x in range(0,24):
    print(scipy.stats.f_oneway(Subj1.iloc[[x,:],:]))

我该如何遍历这些行以返回每行的方差分析值?在

提前谢谢!在

编辑:我试图将数据帧转换为值,然后像这样运行迭代,但没有效果:(:

^{pr2}$

编辑2:我试过了,但它仍然返回(nan,nan)多次:

Subj1Values=Subj1.values
for i in range(0,24):
    print(stats.f_oneway(Subj1Values[[i],[0]],Subj1Values[[i],[1]],Subj1Values[[i],[2]],Subj1Values[[i],[3]],Subj1Values[[i],[4]],Subj1Values[[i],[5]]))

Tags: 数据in编辑forstats生物分类range
1条回答
网友
1楼 · 发布于 2024-05-13 18:19:51

itertools.product可以生成两个项目序列的笛卡尔积。例如

In [4]: import itertools as IT

In [5]: list(IT.product([1,2,3], [4,5,6]))
Out[5]: [(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]

因此,要生成所有的行和列对,可以使用

^{pr2}$

请注意,您的数据看起来更像是一个数组而不是一个数据帧。数据帧在列的行和列名上有一个索引。这里没有使用任何一个,这表明您不需要使用数据帧。此外,行和列中的值在质量上是相同的。数据帧中的数据通常不是这样。因此,您最好将Subj1制作为NumPy数组,而不是Pandas数据帧。在

相关问题 更多 >