我有一个Python中的数据帧,如下所示,我需要找到交易相同类别商品的客户(Customer_ID(,并查找大多数相关客户是否购买或出售相关类别。完成这些操作后,我应该了解他们中的哪一个正在使用Delivery、Download/Upload或两者兼有。对我来说,避免重复的行是很重要的(例如40275的customer_id在软件类别上有三个重复(,这应该算作一个。因此,我需要将用户分类为相同的类别,交付和下载/上传,而不重复。
Customer_ID | 类别 | 类型交付下载/上传||
---|---|---|---|
40275 | 书籍 | 购买真 | |
40275 | 软件 | 出售错误 | 正确 |
40275 | 软件 | 出售错误 | 正确 |
40275 | 软件 | 出售错误 | 正确 |
39900 | 糖果配方 | 出售真 | >真|
39900 | 书籍 | 购买真 | >真|
39900 | 软件 | 出售真 | >真|
35886 | 账面 | 卖出错误 | 正确 |
35886 | 书籍 | 购买错误 | <1td>正确|
35886 | 糖果配方 | 出售错误 | 正确 |
35886 | 软件 | 出售错误 | 正确 |
40350 | 软件 | 出售真 | >真|
28129 | 软件 | 购买错误 | 正确 |
41571 | 软件 | 购买真 | 真
你看起来像这样吗:
>>> df.drop_duplicates().assign(value=1)
.pivot(index=['Customer_ID', 'Category', 'Delivery', 'Download/Upload'],
columns='Type', values='value')
.fillna(0).astype(int).reset_index()
Type Customer_ID Category Delivery Download/Upload Buy Sell
0 28129 Software False True 1 0
1 35886 Book False True 1 1
2 35886 Confectionery recipe False True 0 1
3 35886 Software False True 0 1
4 39900 Book True True 1 0
5 39900 Confectionery recipe True True 0 1
6 39900 Software True True 0 1
7 40275 Book True True 1 0
8 40275 Software False True 0 1
9 40350 Software True True 0 1
10 41571 Software True True 1 0