У меня есть цикл, который каждый раз дает новые значения k1 и k2, но проблема в том, что в моем наборе данных есть случаи, когда все значения равны нулю как в k1, так и k2. Когда программа приходит к ним, она просто выдает ошибку и не завершает цикл, и все еще много расчетов. Как я могу сделать такие случаи просто подписаны, например, NA или что-то еще, и цикл продолжается?
python3
import pandas
from scipy.stats import mannwhitneyu
print(mannwhitneyu(k1, k2))
Я провожу этот тест Манна-Уитни 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
. Если это правда, просто используйте продолжение для своего цикла. Как это:
if ( k1 == k2 ) == True: continue
перед вызовом mannwhitneyu(k1, k2)