Получение ошибки при вычислении стандартного отклонения с использованием Pandas

#python-3.x #pandas #pandas-groupby

#python-3.x #pandas #pandas-groupby

Вопрос:

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

Я использую https://www.shanelynn.ie/summarising-aggregation-and-grouping-data-in-python-pandas / в качестве руководства.

Ниже приведен пример фрейма данных:

 Book Home    Num    Pointspread  odds
A   P       -135    -2.5        -110.0
B   P        NaN    -3          -101.0
B   P        NaN    -3          -110.0
C   P        NaN    -3          -120.0
B   P        NaN    -3          -100.0
  

и это код, который я написал

 home_std_dev = home_analysis_data.groupby('Book','Home').agg({'Num':'std',
                                                          'Pointspread':'std',
                                                           'odds':'std'})
  

Приведенный выше код выдает ошибку

 ValueError: No axis named Home for object type <class 'type'>
  

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

Поскольку я новичок в python, пожалуйста, дайте мне знать, есть ли лучший способ решить эту проблему. Спасибо!

Ответ №1:

Используйте list in groupby ['Book','Home'] для группировки по нескольким столбцам:

 home_std_dev = home_analysis_data.groupby(['Book','Home']).agg({'Num':'std',
                                                      'Pointspread':'std',
                                                       'odds':'std'})