python - 如何使用循环在 python 中执行 Mann-Whitney U 测试?

标签 python pandas loops scipy statistics

我有一个循环,每次都给出新值 k1 和 k2,但问题是在我的数据集中,有些情况下 k1 和 k2 的所有值都为零。程序到他们那里,只是抛出一个错误,并没有完成循环,还有大量的计算。我怎样才能让这种情况只被签署,比如 NA 或其他东西,然后循环继续?

python3 

import pandas

from scipy.stats import mannwhitneyu

print(mannwhitneyu(k1, k2))

我对不同的观察结果进行了这个 Mann-Whitney U 检验,我希望循环不会因错误而停止,只是要注意这里是不可能的

错误示例(第3行,上面是正常的):

MannwhitneyuResult(statistic=3240.0, pvalue=0.16166098643677973)
MannwhitneyuResult(statistic=2958.5, pvalue=0.008850960706454409)
Traceback (most recent call last):
  File "ars1", line 95, in <module>
    print(mannwhitneyu(k1, k2))
  File "/storage/software/python-3.6.0/lib/python3.6/site-packages/scipy/stats/stats.py", line 4883, in mannwhitneyu
    raise ValueError('All numbers are identical in mannwhitneyu')
ValueError: All numbers are identical in mannwhitneyu

最佳答案

如果 2 个数组相等,您可以继续循环。例如,如果:

k1 = [0,0,0,0,0];
k2 = [0,0,0,0,0];

然后你可以检查是否k1 == k2。如果是这样,只需对循环使用 continue 即可。像这样:

if ( k1 == k2 ) == True: continue

就在调用 mannwhitneyu(k1, k2) 之前

关于python - 如何使用循环在 python 中执行 Mann-Whitney U 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52450778/

相关文章:

python-3.x - 如何删除包含空列表的数据框中的行?

python - 如何在不使用 nan 的情况下保留唯一 ID 的同时对特定列求和

vb.net - 如何将枚举添加到列表中

python - Dragon NaturallySpeaking 程序员

python - 如何绘制从特定开始日期开始的时间序列?

python - Pandas 在第一个 % 符号和第二个字母上拆分列

Python 测试传感器,然后再次运行它们直到按下按键

python - PySpark - 有没有办法迭代多个列并用列的最大数(+1)填充 NA?

python - Pandas groupby 意味着另一个 Dataframe

python - 允许argparse nargs ="+"接受带选项的逗号分隔输入