【发布时间】:2018-08-02 13:39:39
【问题描述】:
我有一个巨大的 DataFrame,其中包括三列:kleur、merk 和 prijs。我想为每个merk 计算每个kleur 的prijs 的平均值。数据如下:
occasions.head(15)
kleur merk prijs
0 Zwart Peugeot 1490.0
1 Zwart Alfa Romeo 2450.0
2 Grijs Fiat 3950.0
3 Groen Hyundai 1250.0
4 Grijs Mitsubishi 1350.0
5 Grijs Nissan 5480.0
6 None Opel 5950.0
7 Zwart Peugeot 4950.0
8 Zwart Peugeot 6950.0
9 Beige Renault 4950.0
10 Groen Suzuki 2250.0
11 Geel Toyota 4980.0
12 Geel Volkswagen 2950.0
13 Blauw Volkswagen 2950.0
14 Beige Fiat 7500.0
我暗示它是波纹管:
temp = []
for merk, mk_data in occasions_prijs_df.head(10).groupby(['merk']):
for kleur, kleur_data in mk_data.groupby('kleur'):
temp.append({'merk': merk, 'kleur':kleur, 'kleur_count':kleur_data.shape[0],
'prijs_avg': kleur_data['prijs'].mean()})
print merk, kleur, kleur_data.shape[0], kleur_data['prijs'].mean()
occasions_prijs_df_gr = pd.DataFrame(temp)
输出 (occasions_prijs_df_gr) 应如下所示:
kleur kleur_count merk prijs_avg
0 Zwart 1 Alfa Romeo 2450.000000
1 Grijs 1 Fiat 3950.000000
2 Groen 1 Hyundai 1250.000000
3 Grijs 1 Mitsubishi 1350.000000
4 Grijs 1 Nissan 5480.000000
5 Zwart 3 Peugeot 4463.333333
6 Beige 1 Renault 4950.000000
【问题讨论】:
标签: python pandas group-by aggregation