如何在python中使用列组修剪数据帧并在新的数据帧中重塑它们

如何在python中使用列组修剪数据帧并在新的数据帧中重塑它们,python,python-3.x,pandas,Python,Python 3.x,Pandas,嗨,我有如下数据框 我的df 现在我想按手机号码分组,在我的数据集中,从排名1到排名3,每个手机号码我有40个排名,所以我需要修剪其中的一个,因为我只需要排名前3的排名 预期产出:- MobileNumber Item 999999999 a,b,c 888888888 h.t.yy 有谁能帮我解决这个问题吗让我们先使用query过滤器,然后再使用groupby df.query('rank<=3').group

嗨,我有如下数据框 我的df

现在我想按手机号码分组,在我的数据集中,从排名1到排名3,每个手机号码我有40个排名,所以我需要修剪其中的一个,因为我只需要排名前3的排名 预期产出:-

 MobileNumber    Item        
    999999999       a,b,c 
    888888888       h.t.yy     

有谁能帮我解决这个问题吗

让我们先使用
query
过滤器,然后再使用
groupby

df.query('rank<=3').groupby('MobileNumber').Item.apply(','.join)
Out[29]: 
MobileNumber
888888888    h,t,yy
999999999     a,b,c
Name: Item, dtype: object

df.query('rank既然您已经订购了
rank
s,只需获得
head(3)
即可获得前3名

df.groupby('MobileNumber')['Item'].agg(lambda s: ','.join(s.head(3)))

df.groupby('MobileNumber')['Item'].agg(lambda s: ','.join(s.head(3)))
MobileNumber
888888888    h,t,yy
999999999     a,b,c
Name: Item, dtype: object