首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在给定一个非常大的表的情况下,如何使用python高效地填充矩阵?

在给定一个非常大的表的情况下,如何使用python高效地填充矩阵?
EN

Stack Overflow用户
提问于 2016-11-17 07:00:17
回答 2查看 111关注 0票数 0

我有一个包含三列'customer','item_id','ct_id‘的表,但是行大约有300万行。唯一的'item_id‘有20350个条目,而'customer’有2485个条目。每个顾客可以购买20350种商品中的任意数量的商品

我们的目标是建立一个基于表格的推荐系统。首先,我想构造一个2485x20350的矩阵,它的行是‘客户’,列是'item_id‘。每个元素都是表中'customer‘和'item_id’对的出现次数。THen I可以基于此客户/项目矩阵构建相似度矩阵。

我尝试在熊猫中使用pivot_table,如下所示: d_pivt = dt.pivot_table(index='cstm_num','it_num',aggfunc='count'),

我只是想知道,有了这些信息,构建我想要的矩阵的最有效方法是什么。

谢谢,

EN

回答 2

Stack Overflow用户

发布于 2016-11-17 07:09:27

您说的是列中的'item_id'和行中的'customer'

代码语言:javascript
复制
d_pivt = dt.pivot_table(values='ct_id', index='customer',
                        columns='item_id', aggfunc='count')

演示

代码语言:javascript
复制
df = pd.DataFrame(np.random.randint(0, 10, (1000, 3)),
                  columns=['customer', 'item_id', 'ct_id'])

df.pivot_table('ct_id', 'customer', 'item_id', 'count')

票数 0
EN

Stack Overflow用户

发布于 2016-11-18 00:06:00

@piRSquared你的方法就像我想要的那样工作。现在,我的客户/项目矩阵如下所示:enter image description here

我还没有被允许添加图片。:-(

但是我得到了我想要的矩阵,它的尺寸是2485x20350。你可以从上面的图像链接中看到,有很多零,因为一个顾客可能只会买几百件商品。我尝试使用以下命令计算项目相关矩阵:

代码语言:javascript
复制
sall_pvtb = sales_all.pivot_table(values='cm_id', index='cstm_num',  
columns = 'it_num', aggfunc='count')

sall_pvtb.fillna(0, inplace = True)

sall_corr = sall_pvtb.corr()

但项目相关性计算需要很长时间,因为它是20350x20350大小的矩阵。相关性计算是不是很稀疏?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40643867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档