scipy.stats.pearsonsr в списке pandas столбцов - PullRequest
0 голосов
/ 19 марта 2020

У меня есть pandas фрейм данных, который уже очищен и готов к go, и я пытаюсь создать таблицу с корреляциями Пирсона для списка столбцов, но я делаю что-то не так и не могу кажется, заставить его работать. При запуске scipy.stats.spearmanr он работает отлично, но я что-то пропускаю pearsonr, что делает его неудачным.

df:

|   | Id   | Scale 1  | Scale 2 | Scale 3 | Gender | Scale 4  | Scale 5  |
|---|------|----------|---------|---------|--------|----------|----------|
| 1 | 9954 | 0.000000 | 0.0625  | 0.4     | Male   | 0.333333 | 0.3125   |
| 2 | 2245 | 0.142857 | 0.3125  | 0.5     | Female | 0.533333 | 0.533333 |
| 3 | 5645 | 0.428571 | 0.3125  | 0.4     | Female | 0.400000 | 0.428571 |
| 4 | 7845 | 0.000000 | 0.3750  | 0.5     | Male   | 0.766667 | 0.0625   |
| 5 | 9654 | 0.000000 | 0.3750  | 0.8     | Male   | 0.6      | 0.333333 |

Я пытаюсь создать корреляционную таблицу, содержащую значения r и p для каждой пары столбцов, исключая id и пол (очевидно). С этой целью я создал список столбцов, которые я хочу соотнести

corrs =[f"scale {x}" for x in range(1,6)]

Если я попытаюсь

r, pval = spearmanr(df[corrs])
print(r, pval

, я могу напечатать оба r и pval с правильные результаты, которыми я могу манипулировать столько, сколько хочу.

Однако, когда я пытаюсь

r, pval = pearsonr(df[corrs])
print(r, pval)


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-51-0d5fa4dfe4fe> in <module>
----> 1 r, pval = pearsonr(df2[cors])
      2 print(r, pval)

TypeError: pearsonr() missing 1 required positional argument: 'y'

, я понимаю, что 'y' является необходимой переменной, но я не уверен, как создать al oop, который позволит мне двигаться попарно через список столбцов.

Я думаю, это было бы что-то вроде

for x in df[corrs]:
    for y in df[corrs]:
        r, pval = pearsonr(x,y)

Но этот вид oop не сработал для меня.

Любой совет будет оценен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...