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

问题描述 投票:1回答:2

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

我有以下数据:

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

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

python pandas pivot
2个回答
1
投票

看起来你想要一个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

1
投票

一内胆:

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

这使:

channel              A      B      C
device_id brand                     
214       S      8.932  5.408  44.25
© www.soinside.com 2019 - 2024. All rights reserved.