为kruskalwallishtest python创建向量

2024-10-02 18:18:07 发布

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

我有如下数据集

df = pd.DataFrame({'numbers':range(9), 'group':['a', 'b', 'c']*3})

 group numbers
0   a   0
1   b   1
2   c   2
3   a   3
4   b   4
5   c   5
6   a   6
7   b   7
8   c   8

我想创建向量

^{pr2}$

对于Kruskal Wallis H-test python

stats.kruskal(a, b, c)

或者类似于R(数字组)


Tags: 数据testdataframedfstatsgrouprange数字
1条回答
网友
1楼 · 发布于 2024-10-02 18:18:07

我不熟悉Kruskal-Wallis测试的任何特殊要求,但是您可以通过以下方式将这些分组数组放入字典来访问它们:

groupednumbers = {}
for grp in df['group'].unique(): 
    groupednumbers[grp] = df['numbers'][df['group']==grp].values

print(groupednumbers)
*** {'c': array([2, 5, 8]), 'b': array([1, 4, 7]), 'a': array([0, 3, 6])}

也就是说,您可以通过显式调用groupednumbers['a']等,或者通过一个列表获得向量:

^{pr2}$

。。。或者如果您需要按顺序排列:

args = [groupednumbers[grp] for grp in sorted(df['group'].unique())]

然后打电话

stats.kruskal(*args)

或者,如果需要实际的列表,可以执行list(df['numbers'][...].values。)

相关问题 更多 >