擅长:python、mysql、java
<p>您还可以使用scipy创建正方形矩阵,如下所示:</p>
<pre><code>import scipy.sparse as sp
cols = df.columns
X = sp.csr_matrix(df.astype(int).values)
Xc = X.T * X # multiply sparse matrix
Xc.setdiag(0) # reset diagonal
# create dataframe from co-occurence matrix in dense format
df = pd.DataFrame(Xc.todense(), index=cols, columns=cols)
</code></pre>
<p>稍后,您可以从dataframe创建一个边缘列表并将其导入Networkx:</p>
<pre><code>df = df.stack().reset_index()
df.columns = ['source', 'target', 'weight']
df = df[df['weight'] != 0] # remove non-connected nodes
g = nx.from_pandas_edgelist(df, 'source', 'target', ['weight'])
</code></pre>