在excel中使用pivot时聚合多行[duplicate]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在excel中使用pivot时聚合多行[duplicate]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我有以下数据:

enter image description here

因此,对于每个设备,9月,10月和11月的10个通道都有数小时的数据,这些需要在device_id上​​进行旋转时进行求和,因此输出将如图像的第二部分所示。

以下是文本格式的数据:

device_id   month_id channel    hours       brand
214 201711  A           2.311       S
214 201710  A           6.071       S
214 201709  A           0.55        S
214 201711  B           0.603       S
214 201710  B           2.185       S
214 201709  B           2.62        S
214 201711  C           0.82        S
214 201710  C           25.70       S
214 201709  C           17.73       S

Output:             
device_id   A       B           C           brand
214     8.933054    5.412499    44.261665   S

所有数据都在熊猫数据框中,我想使用数据透视表。有人可以帮我这个吗?

答案

看起来你想要一个pivot_table操作 -

df = df.pivot_table(index=['device_id', 'brand'], 
                    columns='channel', 
                    values='hours', 
                    aggfunc=sum)
       .reset_index()

df.columns.name = None
df

   device_id brand      A      B      C
0        214     S  8.932  5.408  44.25
另一答案

一内胆:

df.groupby(["device_id", "brand", "channel"])["hours"].sum().unstack()

这使:

channel              A      B      C
device_id brand                     
214       S      8.932  5.408  44.25

以上是关于在excel中使用pivot时聚合多行[duplicate]的主要内容,如果未能解决你的问题,请参考以下文章

在没有聚合的 SQL 中将行透视到列

在sql中使用pivot的多行

sql 查询出一列内容,如何让它成一行显示。

SQL 连接,使用 Pivot 聚合

在 SQL Pivot 上使用 Min 聚合

数据分析—一文看懂数据透视表(Excel&Pandas-pivot_table实现)