Кросс-таблицы панд в среднем - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь выполнить перекрестный запрос к фрейму данных Pandas. Это выглядит примерно так:

| Category | Score1 | Score2 | Score3 | Score4
| 1        | 2      | 3      | 5      | 12
| 1        | 3      | 4      | 2      | 5
| 2        | 1      | 6      | 8      | 6

Я хочу создать перекрестный запрос, который получит что-то вроде этого, с категорией в виде столбца и оценками в виде строк:

Category| 1        | 2      | 3      |        
Score 1 |          |        |        |    
Score 2 |          |        |        |      
Score 3 |          |        |        |

Значения в пустых местах будут средними для каждой категории для каждой оценки.

Существующий файл данных - это файл csv, который считывается в Pandas DataFrame. Я посмотрел на функцию pd.crosstab(), но не могу связать ее с фреймом данных. Также у него есть параметр для aggfunc, который я установил (используя numpy) aggfunc=np.average, однако я не могу понять параметр value.

Я что-то упустил, или я вообще должен использовать Панд для этого?

1 Ответ

0 голосов
/ 06 июля 2018

Возможно, существует решение с pd.crosstab, но вы также можете выполнить то, что хотите, с помощью groupby, mean и T (транспонировать), например:

df_output = df.groupby('Category').mean().T

и вы получите:

Category    1    2
Score1    2.5  1.0
Score2    3.5  6.0
Score3    3.5  8.0
Score4    8.5  6.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...