2016-08-01 178 views
0

我在數據框中有3列,如下所示:在Python中使用groupby多列

User_ID,Product_Category_1和對應購買金額。

我想根據User_ID和Product_Category_1進行分組,並選擇購買金額的平均值。

因此,輸出數據框將具有:User_ID,Product_Category_1和Avg_Purchase。

這不是爲我工作:

x=train_bk.groupby(["User_ID","Product_Category_1"],as_index=False)['Purchase'].transform('mean') 

這給了我一系列的購買各行的平均值。不過,我只需要保留獨特的USER_ID和Product_Category_1組合

x1 = train_bk.select(Average(train_bk.User_ID), train_bk.Product_Category_1, 
      group_by=(train_bk.User_ID,train_bk.Product_Category_1)) 

這個我試過從SQL包。但它會拋出錯誤:「名稱」平均「未定義」。在Python中有一個很好的包,它的SQL語法類似於Teradata或MYSQL。

回答

0

好了,這似乎是工作:

x = train_bk.groupby(["User_ID","Product_Category_1"],as_index=False)['Purchase'].mean()