python-3.x - Pandas 将 kruskal-wallis 应用于数字列
问题描述
我有一个 27 列的数据框(26 个是数字变量,第 27 列告诉我每行与哪个组相关联)。总共有 7 组我试图将 Kruskal-Wallis 检验应用于每个变量,按组划分,以确定是否存在显着差异。
我努力了:
df.groupby(['treatment']).apply(kruskal)
这会引发错误“在 stats.kruskal() 中至少需要 2 组两组”。
我的其他尝试也没有产生输出。我将定期使用更大的数据集进行类似的分析。有人可以帮我理解这个问题以及如何解决它吗?
解决方案
使用 Scipy,您可以对每个变量执行以下操作:
scipy.stats.kruskal(*[group["variable"].values for name, group in df.groupby("treatment")])
推荐阅读
- c# - 将所有发布的字符串修剪为 API ASP.NET CORE 3.x
- mysql - sql - 在子查询和同一张表中更新
- php - PHP DatePeriod 在午夜之前和之后,只有时间,没有日期
- deep-learning - 当一个类中的图像变化很大(完全不同的形状和外观)时如何执行图像识别?有没有介绍这个的论文?
- python - 如何对具有多个字符串的 .csv 列进行排序(Python)
- c++ - 将参数传递给 QThreadPool::globalInstance()->start() 的问题
- typescript - TypeScript 使用动态名称安全地键入属性
- r - 'Enter' 键不会与 splashR::splash_send_key 一起发送
- javascript - “不是函数”错误;尝试使用 Geolocation API 和 Weather API
- html - 以后如何在 Wix 网站上授权/获取 Paypal 付款?