多柱Kruskal-wallis试验

2024-10-02 18:21:37 发布

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

我是python的新手,尝试对分成两组(C2和S1)的多个列执行Kruskal Wallis测试

到目前为止,我已经能够使用以下代码对单个列进行Kruskal Wallis测试。(我通过互联网收集)

import pandas as pd
df =pd.read_excel( 'C2_S1_sorted_2.xlsx')

#collected through internet
import scipy.stats as ss
data = [df.loc[ids, '3-HYDROXYPHENYLACETATE-DEGRADATION-PWY: 4-hydroxyphenylacetate degradation'].values for ids in df.groupby('Group').groups.values()]
H, p = ss.kruskal(*data)
p

我尝试使用“while循环”来循环所有列,但到目前为止还不能这样做。我在StackOverflow中也讨论了几乎所有与此相关的问题,但我无法解决我的问题

有谁能帮我做这件事吗?如果这是一个非常基本的问题,我很抱歉

下面是我的数据的样子

Group   1CMET2-PWY: N10-formyl-tetrahydrofolate biosynthesis    3-HYDROXYPHENYLACETATE-DEGRADATION-PWY: 4-hydroxyphenylacetate degradation  7ALPHADEHYDROX-PWY: cholate degradation (bacteria, anaerobic)
C2  889.944 0   0
C2  931.451 0   0
C2  795.362 0   0
C2  840.724 0   0
C2  732.173 0   0
C2  908.025 0.843261    0
C2  733.818 0.518661    0
C2  842.462 1.82225 0
C2  843.887 0   0
C2  823.395 0   0
C2  713.35  0.699201    0.534327
C2  859.136 0.604455    0
C2  871.477 0   0
C2  763.695 0   0
C2  835.966 0   0
C2  781.925 0   0
C2  1010.87 0   0
C2  936.106 0   0
C2  738.947 1.9034  0
C2  988.541 0   0
S1  838.256 0   0
S1  758.363 0   0
S1  1022.51 0   0
S1  1016.61 0   0
S1  908.64  0   0
S1  941.786 0   0
S1  999.038 0   0
S1  914.317 0   0
S1  1053.07 0   0
S1  876.61  0   0
S1  793.693 0   0
S1  916.2   0   0
S1  1108.61 0   0
S1  938.456 0   0
S1  825.406 0   0
S1  1332.52 0   0
S1  1198.65 0   0
S1  1005.4  0   0
S1  826.529 0   0
S1  1170.82 0.624429    0

Tags: importidsdfdataassspdc2