gpt4 book ai didi

python分组和进一步分组

转载 作者:太空宇宙 更新时间:2023-11-04 02:03:55 25 4
gpt4 key购买 nike

我尝试了不同的方法来将数据分组到两个不同的列和明亮的权重因子中。可悲的是我对python很陌生。我已经回答了几个问题,并试图提出一半的解决方案。你能帮我解决剩下的问题或者至少提供一个想法吗?下面是模拟代码:

    data = pd.DataFrame({'sku_id' : ['s1', 's1', 's1', 's2','s2','s2','s3','s3','s3'], 
'product_id' : ['p1','p1','p2','p1','p1','p1','p2','p2','p3']})
count_series = data.groupby(['product_id','sku_id']).size()
print('-'*30)
print(count_series)
print('-'*30)
agg_count = count_series.to_frame(name = 'weight').reset_index()
print(agg_count)
print('-'*30)

输出如下:

------------------------------
product_id sku_id
p1 s1 2
s2 3
p2 s1 1
s3 2
p3 s3 1
dtype: int64
------------------------------
product_id sku_id weight
0 p1 s1 2
1 p1 s2 3
2 p2 s1 1
3 p2 s3 2
4 p3 s3 1
------------------------------

谁能帮我根据它们的组合和出现次数进一步分组 SKU_ID 列。 (有点像推荐引擎)

期望的输出:

-----------------------
sku_id weight
s1 & s2 1
s2 & s3 0
s3 & s1 1
-----------------------

最佳答案

IIUC,你可以试试下面的方法:

import itertools
#Replicating your steps:
m = data.groupby(['product_id','sku_id']).size().reset_index(name='weight')
#group on `product_id` and apply a `tuple on `sku_id` print to see results
n=m.groupby('product_id')['sku_id'].apply(tuple).reset_index()
#create combinations by list(itertools.combinations(m.sku_id.unique(),2))
#check if any combination matches tuple and apply astype(int) for int results
n['new']=n.sku_id.isin((itertools.combinations(m.sku_id.unique(),2))).astype(int)
print(n)

product_id sku_id new
0 p1 (s1, s2) 1
1 p2 (s1, s3) 1
2 p3 (s3,) 0

请注意,s2s3 出现在 sku_id 列中。所以只考虑那一行总会给你一个组合,所以我的输出有点不同。

关于python分组和进一步分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55140528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com