如何返回多列中一个分组列的平均值

时间:2018-11-26 11:43:51

标签: python pandas dataframe pandas-groupby

我有一个看起来像这样的数据框:

Type  Time  Node  Bytes
 A     1     0     11         
 A     1     0     12
 B     1     0     13
 B     1     1     14

我想按类型,时间和节点按数据帧分组,并根据类型表示数据。结果数据框应如下所示:

 Mean_A     Mean_B
  11.5      13.5

作为pandas数据框的初学者,我编写了一个简单的按组划分的代码。

total_kilobytes = data.groupby(['Time','Node','Type'])['KilobytesRaw'].sum().mean().

这将返回所有类型的均值,但我希望每种类型具有均值,并将结果存储为数据框而不是序列。

2 个答案:

答案 0 :(得分:0)

我相信您需要:

total_kilobytes = data.groupby('Type')['Bytes'].mean().to_frame().T.add_prefix('Mean_')
print (total_kilobytes)
Type   Mean_A  Mean_B
Bytes    11.5    13.5

答案 1 :(得分:0)

使用pd.pivot_table

res = pd.pivot_table(df, columns='Type', values=['Bytes']).add_prefix('Mean_')

print(res)

Type   Mean_A  Mean_B
Bytes    11.5    13.5