索引包含多个值数据框枢轴

时间:2013-07-09 19:42:34

标签: python pandas pivot dataframe

我目前在数据框中有以下格式的数据:

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

所有我一直得到的是索引包含多个确实存在的值,但是为什么它不会理解有相似之处并将它们映射到我想要的输出中的同一行?

1 个答案:

答案 0 :(得分:3)

使用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:函数,默认numpy.mean或函数列表
  如果传递的函数列表,则生成的数据透视表将具有分层列   其顶级是函数名称(从函数对象本身推断)

关于两者之间的区别,我认为pivot只是重塑(如果出现问题则会抛出错误),而pivot_table会提供更多信息高级功能,又名“电子表格式数据透视表”。