首页 > 解决方案 > Pandas 将 kruskal-wallis 应用于数字列

问题描述

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

我努力了:

df.groupby(['treatment']).apply(kruskal)

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

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

标签: python-3.xpandasapplykruskal-wallis

解决方案


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

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

推荐阅读