#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'})