【发布时间】:2017-01-06 19:52:13
【问题描述】:
我想从以下数据框中创建一个数据透视表,其中包含 sales、rep 列。数据透视表显示sales,但没有显示rep。当我只尝试rep 时,我收到了错误DataError: No numeric types to aggregate。如何解决此问题,以便我同时看到数字字段 sales 和字段(字符串)rep
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 函数或传递另一列的值。如果只想使用数据透视表,请使用数据透视表而不是数据透视表。