[英]Pandas Dataframe Pivot-table: How to group by column values?
我有以下数据帧结构:
dimension month of year metric1 metric2
0 A 201809 xxxx xxxx
1 B 201809 xxx xxx
2 C 201808 xxx xxx
...
接下来我创建了一个数据透视表:
table = pd.pivot_table(df, values=['metric1', 'metric2'], index=['dimension'], columns=['ga:yearMonth'], aggfunc=np.sum)
这导致:
metric1 metric2
month of year 201807 201808 201809 201807 201808 201809
dimension
A x x x x x x
B x x x x x x
C x x x x x x
这非常接近我想要的,除了我想要按月份而不是指标对数字进行分组。 像这样的东西:
month of year 201807 201808 201809
metric 1 2 1 2 1 2
dimension
A x x x x x x
B x x x x x x
C x x x x x x
环顾四周,我的理解是这将需要使用 MultiIndexing,尽管我一直无法找到可行的解决方案。
我只是为 metric1 和 metric2 设置了一些值。 但请参阅下面的代码。
import pandas as pd
import numpy as np
df = pd.DataFrame([['A', '201809' ,234, 567],
['B', '201809' ,105, 640],
['C', '201808' ,250, 700],
['A', '201808' ,200, 267],
['B', '201809' ,57, 654],
['C', '201807' ,205, 620],
['A', '201807' ,234, 567],
['B', '201808' ,110, 640],
['C', '201808' ,275, 700],
['A', '201807' ,150, 267],
['B', '201807' ,57, 654],
['C', '201809' ,205, 620]
], columns=['dimension','month','metric1','metric2'])
df2 = pd.melt(df, id_vars=['dimension', 'month'], value_vars=['metric1', 'metric2'])
pd.pivot_table(df2, values=['value'], index=['dimension'], columns=['variable' , 'month'], aggfunc=np.sum)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.