首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于组分配将数据帧转换为稀疏矩阵(如果在组中,则为1;如果不在组中,则为0)

基于组分配将数据帧转换为稀疏矩阵(如果在组中,则为1;如果不在组中,则为0)
EN

Stack Overflow用户
提问于 2019-11-02 02:43:45
回答 1查看 28关注 0票数 1

我有一个Pandas数据帧,看起来像这样:

代码语言:javascript
复制
    user      community
    abc       A
    abc       A
    abc       B
    def       A
    def       A
    def       B
    def       C
    ghi       A
    ghi       D
... 

基于user列和community列,我想为community列创建一个n x n矩阵,其中每一行都包含关于每个社区的共享的、唯一的用户数量的信息。

在我的示例中,社区A有3个唯一的邻居,因为用户abcdefghi都连接到社区A(与我的目的无关),社区B有2个共享用户,社区D有1个共享用户。

我正在想象一个矩阵,看起来像这样:

代码语言:javascript
复制
    A    B    C    D
A  ...  ...  ...  ...
B  ...  ...  ...  ... 
C  ...  ...  ...  ...
D  ...  ...  ...  ...

...where ...是每个社区的公共用户数。

在这一点上我完全不知所措。我正在尝试为网络分析准备数据,但无法获得所需的结果。

我环顾四周,找到了与交叉表和共现矩阵相关的有用文章,但它们没有返回预期的结果。

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-02 02:52:50

我会做dot

代码语言:javascript
复制
df=df.drop_duplicates()
s=pd.crosstab(df.community,df.user)
s.dot(s.T.gt(0))
Out[330]: 
community  A  B  C  D
community            
A          3  2  1  1
B          2  2  1  0
C          1  1  1  0
D          1  0  0  1
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58664297

复制
相关文章

相似问题

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