Ошибка: len () объекта без размера - критерий рангового ранга Wilconox - PullRequest
1 голос
/ 26 апреля 2020

Я запускаю тест со знаком ранга Wilconox для набора данных, который выглядит следующим образом:

df = {'Year': ['2019','2018','2017', ....], 'Name':{jon, tim, luca,...}, 'SelfPromotion': [1,0,1,...]} 

сценарий выглядит следующим образом:

import pandas
from scipy.stats import mannwhitneyu

data1 = df['SelfPromotion']=1
data2 = df['SelfPromotion']=0
print(mannwhitneyu(data1, data2))

это дает мне следующую ошибку:

Ошибка типа: len () объекта без размера

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-30-e49d9838e5ac> in <module>
      3 data1 = data['SelfPromotion']=1
      4 data2 = data['SelfPromotion']=0
----> 5 print(mannwhitneyu(data11, data22))

~/opt/anaconda3/envs/shityaar/lib/python3.7/site-packages/scipy/stats/stats.py in mannwhitneyu(x, y, use_continuity, alternative)
   6391     x = np.asarray(x)
   6392     y = np.asarray(y)
-> 6393     n1 = len(x)
   6394     n2 = len(y)
   6395     ranked = rankdata(np.concatenate((x, y)))

TypeError: len() of unsized object


Я попробовал все возможные варианты решения этой ошибки, посмотрев на похожие вопросы, но, к сожалению, ни одно решение не смогло ее получить. работать. Буду признателен за помощь.

1 Ответ

0 голосов
/ 26 апреля 2020

mannwhitneyu ожидает array подобные параметры, и вы передаете целые числа как аргументы, отсюда и ошибка.

Сделайте что-то вроде этого:

In [26]: data1 = df['SelfPromotion'] == 1                                                                                                                                                                     
In [28]: data2 = df['SelfPromotion'] == 0

In [31]: mannwhitneyu(data1, data2)                                                                                                                                                                         
Out[31]: MannwhitneyuResult(statistic=3.0, pvalue=0.30962837708843105)
...