我有一个Pandas数据帧,看起来像这样:
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个唯一的邻居,因为用户abc、def和ghi都连接到社区A(与我的目的无关),社区B有2个共享用户,社区D有1个共享用户。
我正在想象一个矩阵,看起来像这样:
A B C D
A ... ... ... ...
B ... ... ... ...
C ... ... ... ...
D ... ... ... ......where ...是每个社区的公共用户数。
在这一点上我完全不知所措。我正在尝试为网络分析准备数据,但无法获得所需的结果。
我环顾四周,找到了与交叉表和共现矩阵相关的有用文章,但它们没有返回预期的结果。
非常感谢。
发布于 2019-11-02 02:52:50
我会做dot
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 1https://stackoverflow.com/questions/58664297
复制相似问题