【问题标题】:Index contains multiples value dataframe pivots索引包含多个值数据框枢轴
【发布时间】:2013-07-07 13:33:36
【问题描述】:

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

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

我一直得到的只是 index 包含多个它确实有的值,但为什么它不明白有相似之处并将它们映射到我在所需输出中所做的同一行?

【问题讨论】:

  • 这不是“转置”吗?如果我错了,请纠正我。
  • 你能具体说明你想要什么吗? pivot 是否给出正确的输出?如果不是,它有什么不正确的?您只想要 2012-11-13 的值吗?
  • @TomAugspurger 所以我清楚地说pivot 给我的索引包含多个值。我还列出了我想要的输出。
  • 你想要的是df.pivot(index='sample_date', columns='metric__name', values='sample').ix['2012-11-13']吗?您想要的输出没有任何其他意义。我不知道您的意思是购买“了解 [它们] 相似并将它们映射到同一行”。

标签: python pandas pivot dataframe


【解决方案1】:

使用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 只是进行 reshaping(如果有问题会抛出错误),而 pivot_table 提供更高级的功能,也就是“电子表格式数据透视表”。

【讨论】:

  • 你能解释一下pivotpivot_table之间的区别吗?
  • 我认为纯粹是 pivot_table 允许更高级的功能,“电子表格样式的数据透视表”,而 pivot 只是进行 reshaping (如果有问题)。
猜你喜欢
  • 2020-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-10
  • 2016-11-07
  • 1970-01-01
  • 2018-11-27
  • 2019-11-01
相关资源
最近更新 更多