我目前在数据框中拥有以下格式的数据:
metric__name sample sample_date
0 ga:visitBounceRate 100 2012-11-13
1 ga:uniquePageviews 20 2012-11-13
2 ga:newVisits 19 2012-11-13
3 ga:visits 20 2012-11-13
4 ga:percentNewVisits 95 2012-11-13
5 ga:pageviewsPerVisit 1 2012-11-13
6 ga:pageviews 20 2012-11-13
7 ga:visitBounceRate 72 2012-11-14
8 ga:uniquePageviews 63 2012-11-14
9 ga:newVisits 39 2012-11-14
话虽这么说,我正在尝试将 metric__name 列分解成这样的内容。
ga:visitBounceRate ga:uniquePageviews ga:newVisits etc...
sample_date
2012-11-13 100 20 19 etc...
我正在执行以下操作以获得我想要的结果。
df.pivot(index='sample_dates', columns='metric__name', values='samples')
我不断得到的是索引包含多个值,它确实包含多个值,但为什么它不明白有相似的值并将它们映射到我在所需输出中所做的同一行?
最佳答案
使用pivot_table
(不会抛出此异常):
In [11]: df.pivot_table('sample', 'sample_date', 'metric__name')
Out[11]:
metric__name ga:newVisits ga:pageviews ga:pageviewsPerVisit ga:percentNewVisits ga:uniquePageviews ga:visitBounceRate ga:visits
sample_date
2012-11-13 19 20 1 95 20 100 20
2012-11-14 39 NaN NaN NaN 63 72 NaN
它接受聚合函数(默认为平均值):
aggfunc
: function, defaultnumpy.mean
, or list of functions
If list of functions passed, the resulting pivot table will have hierarchical columns
whose top level are the function names (inferred from the function objects themselves)
关于两者的区别,我认为pivot
只是 reshape (如果出现问题则抛出错误),而pivot_table
提供更高级的功能,也称为“电子表格样式数据透视表”。
关于python - 索引包含多个值数据帧枢轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17556786/