盤點(diǎn)一個(gè)Pandas聚類求和問題
回復(fù)“資源”即可獲贈(zèng)Python學(xué)習(xí)資料
大家好,我是皮皮。
一、前言
前幾天在Python最強(qiáng)王者交流群【Chloe】問了一道Pandas處理的問題,如下圖所示。

原始數(shù)據(jù)如下:
df = pd.DataFrame({
'ord_no':[70001,70009,70002,70004,70007,70005,70008,70010,70003,70012,70011,70013],
'purch_amt':[150.5,270.65,65.26,110.5,948.5,2400.6,5760,1983.43,2480.4,250.45, 75.29,3045.6],
'ord_date': ['2012-10-05','2012-09-10','2012-10-05','2012-08-17','2012-09-10','2012-07-27','2012-09-10','2012-10-10','2012-10-10','2012-06-27','2012-08-17','2012-04-25'],
'customer_id':[3001,3001,3005,3001,3005,3001,3005,3001,3005,3001,3005,3005],
'salesman_id': [5002,5005,5001,5003,5002,5001,5001,5006,5003,5002,5007,5001]})
df.groupby(['customer_id','salesman_id']).sum()
怎么才能按照這個(gè)分組排purch_amt的序?
預(yù)期的結(jié)果如下圖所示:

二、實(shí)現(xiàn)過程
這個(gè)是聚類求和的問題,這里【月神】給出一個(gè)可行的代碼,大家后面遇到了,可以對(duì)應(yīng)的修改下,事半功倍,代碼如下所示:
dg = df.groupby(['customer_id', 'salesman_id'], as_index=False)['purch_amt'].sum()
dg.sort_values(['customer_id', 'purch_amt', 'salesman_id'], ascending=[True, False, True]).set_index(['customer_id', 'salesman_id'])
運(yùn)行之后,結(jié)果就是想要的了。

完美的解決了粉絲的問題!

三、總結(jié)
大家好,我是皮皮。這篇文章主要盤點(diǎn)了一道使用Pandas處理數(shù)據(jù)的問題,文中針對(duì)該問題給出了具體的解析和代碼實(shí)現(xiàn),幫助粉絲順利解決了問題。
最后感謝粉絲【Chloe】提問,感謝【月神】給出的思路和代碼解析,感謝【dcpeng】、【馮誠(chéng)】等人參與學(xué)習(xí)交流。
小伙伴們,快快用實(shí)踐一下吧!如果在學(xué)習(xí)過程中,有遇到任何問題,歡迎加我好友,我拉你進(jìn)Python學(xué)習(xí)交流群共同探討學(xué)習(xí)。
------------------- End -------------------
往期精彩文章推薦:

歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群】
萬水千山總是情,點(diǎn)個(gè)【在看】行不行
評(píng)論
圖片
表情
