首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pyspark.pandas API:构造共生矩阵,.dot()不支持数据作为输入。

pyspark.pandas API:构造共生矩阵,.dot()不支持数据作为输入。
EN

Stack Overflow用户
提问于 2022-10-14 13:11:08
回答 1查看 10关注 0票数 0

我试图使用pyspark.pandas API在数据库上构造数据的共生矩阵。

我试着用这个方法构造矩阵。Constructing a co-occurrence matrix in python pandas

该代码在熊猫中运行良好,但在使用pyspark.pandas时出现了错误。

代码语言:javascript
运行
复制
coocc = psdf.T.dot(psdf)
coocc

我得到了这个错误

代码语言:javascript
运行
复制
TypeError: Unsupported type DataFrame

我查过医生了。https://spark.apache.org/docs/latest/api/python/reference/pyspark.pandas/api/pyspark.pandas.DataFrame.dot.html

代码语言:javascript
运行
复制
pyspark.pandas.DataFrame.dot()

以串联作为输入。

我尝试使用psdf.squeeze()将dataframe转换为系列化,但它并不将dataframe转换为串联,因为我的dataframe有多个列。

有没有办法将pyspark.pandas.Dataframe改为pyspark.pandas.Series?或者在pyspark.pandas中构造共生矩阵的不同方法

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-14 13:54:07

我用csr_matrix来解决这个问题,因为数据帧有'1‘和'0’作为值

代码语言:javascript
运行
复制
import scipy.sparse as sp

psdfx = sp.csr_matrix(psdf.astype(int).values)
psdfc = ptdfx.T * psdfx
psdfc.setdiag(0)
coocc = ps.DataFrame(psdfc.todense(), columns=psdf.columns, index=psdf.columns)
coocc

参考文献:https://stackoverflow.com/a/37840528/19642283

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

https://stackoverflow.com/questions/74069759

复制
相关文章

相似问题

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