Pandas 将 kruskal-wallis 应用于数字列

kyn*_*nem 1 apply python-3.x pandas kruskal-wallis

我有一个 27 列的数据框(26 列是数字变量,第 27 列告诉我每行与哪个组关联)。总共有 7 个组,我试图将 Kruskal-Wallis 检验应用于每个变量,按组划分,以确定是否存在显着差异。

我试过了:

df.groupby(['treatment']).apply(kruskal)
Run Code Online (Sandbox Code Playgroud)

这会引发错误“在 stats.kruskal() 中需要至少 2 组两组”。

我的其他尝试也没有产生输出。我将定期使用更大的数据集进行类似的分析。有人可以帮助我理解这个问题以及如何解决它吗?

use*_*950 5

使用 Scipy,您可以对每个变量执行以下操作:

scipy.stats.kruskal(*[group["variable"].values for name, group in df.groupby("treatment")])
Run Code Online (Sandbox Code Playgroud)