Я хочу сделать сводную таблицу из следующего фрейма данных с колонками sales
, rep
. Сводная таблица показывает sales
, но не rep
. Когда я пробовал только rep
, я получил ошибку DataError: No numeric types to aggregate
. Как исправить это такое, что я вижу, как числовое поле sales
и поле (строка) rep
pivot_table Нет числовых типов для агрегирования
data = {'year': ['2016', '2016', '2015', '2014', '2013'],
'country':['uk', 'usa', 'fr','fr','uk'],
'sales': [10, 21, 20, 10,12],
'rep': ['john', 'john', 'claire', 'kyle','kyle']
}
print pd.DataFrame(data).pivot_table(index='country', columns='year', values=['rep','sales'])
sales
year 2013 2014 2015 2016
country
fr NaN 10 20 NaN
uk 12 NaN NaN 10
usa NaN NaN NaN 21
print pd.DataFrame(data).pivot_table(index='country', columns='year', values=['rep'])
DataError: No numeric types to aggregate
Это зависит от того, что пытаются сделать. Функция agg по умолчанию является «средней», и вы не можете воспринимать среднее количество торговых представителей. Либо измените функцию agg, либо передайте другой столбец для значений. Если вы просто хотите использовать точку поворота, используйте pivot вместо pivot_table. – ayhan