擅长:python、mysql、java
<p>使用NetworkX API:</p>
<pre><code>In [225]: G = nx.from_pandas_edgelist(df, 'Batch_ID', 'Product_ID')
In [226]: from networkx.algorithms import bipartite
In [227]: W = bipartite.weighted_projected_graph(G, df['Product_ID'].unique())
In [228]: W.edges(data=True)
Out[228]: EdgeDataView([('A', 'C', {'weight': 1}), ('A', 'B', {'weight': 1}), ('B', 'C', {'weight': 3}), ('C', 'D', {'weight': 1})])
In [229]: nx.to_pandas_edgelist(W)
Out[229]:
source target weight
0 A C 1
1 A B 1
2 B C 3
3 C D 1
</code></pre>
<p>注意:对于NetworkX版本1.x,使用<code>from_pandas_dataframe()</code>和{<cd2>},而不是{<cd3>}和{<cd4>}</p>