python 中的购物篮分析
Market basket analysis in python
我正在对一家鞋店的 xlsx 数据集进行购物篮分析
我的数据集就像
收据ID |物品名称 |类别 |净数量
123 |黑鞋 |鞋子 | 5
123 |棕色鞋子 |鞋子 | 4
125 |凉鞋 |凉鞋 | 2
125 |白沙瓦 |鞋子 | 1
我希望我的数据像
收据ID |物品名称 |类别 |网络数量
123 |黑鞋,棕鞋 |鞋子 | 9
125 |凉鞋,白沙瓦 |凉鞋、鞋子| 3
def new_list(items):
Row_list=[ ]
for rows in items.ReceiptID:
if items.ReceiptD==ReceiptID-1:
my_list=[items.ItemName]
Row_list.append(my_list)
return(Row_list)
我想要 python 中的一个函数,如果我在其中加载数据帧,它就会执行此操作。
谢谢:)
IIUC 你只需要 groupby
+ agg
如下
df = pd.DataFrame({"ReceiptID": [123,123,125,125],
"ItemName": ["Black Shoe", "Broen Shoe", "Sandal", "Peshawari"],
"Category": ["Shoes", "Shoes", "Sandal" ,"Shoes"],
"NetQty": [5,4,2,1]})
out = df.groupby("ReceiptID")\
.agg({"ItemName":"unique",
"Category":"unique",
"NetQty":"sum"})\
.reset_index()
ReceiptID ItemName Category NetQty
0 123 [Black Shoe, Broen Shoe] [Shoes] 9
1 125 [Sandal, Peshawari] [Sandal, Shoes] 3
如果您只需要字符串而不是列表,您可以添加这两行
for col in ["ItemName", "Category"]:
out[col] = out[col].str.join(", ")
ReceiptID ItemName Category NetQty
0 123 Black Shoe, Broen Shoe Shoes 9
1 125 Sandal, Peshawari Sandal, Shoes 3
我正在对一家鞋店的 xlsx 数据集进行购物篮分析 我的数据集就像
收据ID |物品名称 |类别 |净数量
123 |黑鞋 |鞋子 | 5
123 |棕色鞋子 |鞋子 | 4
125 |凉鞋 |凉鞋 | 2
125 |白沙瓦 |鞋子 | 1
我希望我的数据像
收据ID |物品名称 |类别 |网络数量
123 |黑鞋,棕鞋 |鞋子 | 9
125 |凉鞋,白沙瓦 |凉鞋、鞋子| 3
def new_list(items):
Row_list=[ ]
for rows in items.ReceiptID:
if items.ReceiptD==ReceiptID-1:
my_list=[items.ItemName]
Row_list.append(my_list)
return(Row_list)
我想要 python 中的一个函数,如果我在其中加载数据帧,它就会执行此操作。 谢谢:)
IIUC 你只需要 groupby
+ agg
如下
df = pd.DataFrame({"ReceiptID": [123,123,125,125],
"ItemName": ["Black Shoe", "Broen Shoe", "Sandal", "Peshawari"],
"Category": ["Shoes", "Shoes", "Sandal" ,"Shoes"],
"NetQty": [5,4,2,1]})
out = df.groupby("ReceiptID")\
.agg({"ItemName":"unique",
"Category":"unique",
"NetQty":"sum"})\
.reset_index()
ReceiptID ItemName Category NetQty
0 123 [Black Shoe, Broen Shoe] [Shoes] 9
1 125 [Sandal, Peshawari] [Sandal, Shoes] 3
如果您只需要字符串而不是列表,您可以添加这两行
for col in ["ItemName", "Category"]:
out[col] = out[col].str.join(", ")
ReceiptID ItemName Category NetQty
0 123 Black Shoe, Broen Shoe Shoes 9
1 125 Sandal, Peshawari Sandal, Shoes 3