Проблема попытке GroupBy на простом dataframe (загружаемый файл CSV), а затем AGG вернуть агрегированные значения для столбцов (размер, сумма, среднее, отклонение станд). Кажется, что простая проблема - это непредвиденная ошибка.Панды GroupBy AGG с множеством функций для применения возвращает ошибку
Top15.groupby('Continent')['Pop Est'].agg(np.mean, np.std...etc)
# returns
ValueError: No axis named <function std at 0x7f16841512f0> for object type <class 'pandas.core.series.Series'>
То, что я пытаюсь получить это ДФ с индексным множеством материков и столбцов ['size', 'sum', 'mean', 'std']
Пример кода
import pandas as pd
import numpy as np
# Create df
df = pd.DataFrame({'Country':['Australia','China','America','Germany'],'Pop Est':['123','234','345','456'],'Continent':['Asia','Asia','North America','Europe']})
# group and agg
df = df.groupby('Continent')['Pop Est'].agg('size','sum','np.mean','np.std')
Синтаксис: 'agg ([np.mean, np.std, ...])'. –
@IgorRaush Я пробовал это и получаю «DataError: нет числовых типов для агрегации», что является странным b/c, когда я смотрю на фреймворк данных, ясно, что есть данные. – Adestin
Данные вашего примера имеют столбец «Pop Est» как строки, а не числовые данные, поэтому вы получаете ошибку. Попробуйте 'df ['Pop Est'] = pd.to_numeric (df ['Pop Est'])' или 'df ['Pop Est'] = df ['Pop Est']. Astype (int)' перед выполнением ' groupby', используя синтаксис, упомянутый Игорем. – root