如何从python pandas groupby对象提取唯一行并将其保存在另一个数据框中?

时间:2019-05-20 04:23:57

标签: pandas machine-learning data-mining data-modeling data-cleaning

我有一个黑色星期五销售的数据集。这些列是User_ID,Product_ID,性别,职业,Product_Category,购买,Marital_Status等。 在分析数据之后,我发现User_ID属性具有多余的条目(即,单个客户购买多种商品)。条目总数为537377,在应用df = df.groupby('User_ID')之后,条目数量减少为5891。我想从pandas groupby对象中提取所有唯一行(即每个客户唯一行)。有什么办法吗?

我尝试汇总与唯一User_ID对应的每次购买金额,但这无济于事。

df = df.groupby('User_ID')
df['Purchase'].transform('sum')
for key, item in df:
    print(df.get_group(key), "\n\n")

执行上述代码后,我得到的结果是:

        User_ID Gender   Age  Occupation City_Category  \ 
0       1000001      F  0-17          10             A   
1       1000001      F  0-17          10             A   
2       1000001      F  0-17          10             A   
3       1000001      F  0-17          10             A   
39180   1000001      F  0-17          10             A 
4       1000002      M  55+           16             C   
39181   1000002      M  55+           16             C   
39182   1000002      M  55+           16             C   
39183   1000002      M  55+           16             C   
39184   1000002      M  55+           16             C   
78147   1000002      M  55+           16             C 

        Product_Category_2  Product_Category_3  Purchase  
0                      0.0                 0.0      8370  
1                      6.0                14.0     15200  
2                      0.0                 0.0      1422  
3                     14.0                 0.0      1057  
39180                  4.0                 8.0     12842 
4                      0.0                 0.0      7969  
39181                 17.0                 0.0      6187  
39182                 16.0                 0.0     10074  
39183                  8.0                14.0      5260  
39184                 16.0                 0.0      7927  
78147                 16.0                 0.0      7791  

我真正想要的是在删除product_category_2之后,第3个是购买属性,其中包含花费的总金额

        User_ID Gender   Age  Occupation City_Category  Purchase
0       1000001      F  0-17          10             A     38891
1       1000002      M  55+           16             C     37239

0 个答案:

没有答案