2016-02-13 210 views
0

我有一個熊貓數據幀與數千行的,和這些的cols:熊貓據幀GROUPBY採用聚集

Name Job Department Salary Date 

我想回到一個新的DF兩個的cols:

Unique_Job  Avg_Salary 

的代碼我用來做到這一點:

jobs = df.groupby(['Job']) 
dict = {} 
for a,b in jobs: 
    dict.update({a: b['Salary'].mean()}) 
dfJobs = pd.DataFrame(dict.items(), columns=['Unique_Job', 'Avg Salary']) 

但是,我知道必須有更好的辦法。想法?謝謝。

+0

你剛剛在'jobs ['Salary']。mean()'上面,因爲你已經在作業上分組了,所以我不明白是否需要再次迭代作業? – EdChum

+0

我認爲EdChum將它擊中鼻子。 mean()將聚合每個組的數據。 – zach

回答

1

正如你已經有辦法,我猜你做鬥爭從該系列中獲得新的數據框,您將獲得輸出結果。您可以使用Series.to_frame()DataFrame.reset_index()方法來創建具有兩列的數據框,然後僅對列進行重命名。像這樣:

jobs = df.groupby('Job')['Salary'].mean() 
jobs = jobs.to_frame().reset_index() 
jobs.columns = ['Unique_Job', 'Avg_Salary']