Pandas 将 kruskal-wallis 应用于数字列
Pandas apply kruskal-wallis to numeric columns
我有一个包含 27 列的数据框(26 列是数字变量,第 27 列告诉我每行与哪个组相关联)。总共有 7 个组,我正在尝试对每个变量应用 Kruskal-Wallis 检验,按组划分,以确定是否存在显着差异。
我试过:
df.groupby(['treatment']).apply(kruskal)
这会引发错误 "Need at least 2 groups two groups in stats.kruskal()"。
我的其他尝试也没有产生输出。我将定期对更大的数据集进行类似的分析。谁能帮我理解这个问题以及如何解决它?
使用 Scipy,您可以对每个变量都这样做:
scipy.stats.kruskal(*[group["variable"].values for name, group in df.groupby("treatment")])
我有一个包含 27 列的数据框(26 列是数字变量,第 27 列告诉我每行与哪个组相关联)。总共有 7 个组,我正在尝试对每个变量应用 Kruskal-Wallis 检验,按组划分,以确定是否存在显着差异。
我试过:
df.groupby(['treatment']).apply(kruskal)
这会引发错误 "Need at least 2 groups two groups in stats.kruskal()"。
我的其他尝试也没有产生输出。我将定期对更大的数据集进行类似的分析。谁能帮我理解这个问题以及如何解决它?
使用 Scipy,您可以对每个变量都这样做:
scipy.stats.kruskal(*[group["variable"].values for name, group in df.groupby("treatment")])