使用groupby创建平均值和总和数据帧

时间:2017-07-19 17:25:49

标签: python pandas dataframe pandas-groupby

我有这个数据框,我想从列'分数'中计算平均值和总和。我不想使用.groupby()。agg()方法。

df = pd.DataFrame({
'Country': ['Germany', 'Germany', 'Canada', 'Canada'], 
'Score': [8, 4, 35, 50], 
 'Continent': ['Europe', 'Europe', 'North America', 'North America']},
columns=['Country','Score','Continent'])
print (df)

Dataframe成为:

   Country          Score      Continent
0  Germany              8         Europe
1  Germany              4         Europe
2   Canada             35  North America
3   Canada             50  North America

我找到的最简单的方法是:

new_df = df.groupby('Continent')['Score'].agg({'sum': np.sum, 'avg': np.average})

Continent               
Europe          12   6.0
North America   85  42.5

我现在有2个系列平均值和总数。如何使用.groupby(' Continent')中的索引将其转换为新的数据框?

我试图在这里使用组,框架方法

for group, frame in df.groupby('Continent'):
        avg = np.average(frame['Score'])
        total = np.sum(frame['Score']) 
        df['avg'] = avg
        df['sum'] = total

0 个答案:

没有答案