擅长:python、mysql、java
<p>使用<a href="https://docs.python.org/2/library/itertools.html#itertools.combinations" rel="nofollow noreferrer">itertools.combinations</a>和一些panda函数,您可以很好地完成这项工作:</p>
<pre><code>pairs_df = pd.DataFrame(df.apply(lambda x: pd.Series(map(sorted, combinations(x, 2))), axis=1).stack().to_list())
# pairs_df has a row for every pair of drugs (in columns 0, 1).
pairs_df["occurrences"] = 1
pairs_df = pairs_df.groupby([0, 1]).sum() # Group identical combinations and count occurences.
result_df = pairs_df.reset_index(level=1).pivot(columns=1) # Pivot to create the requested shape.
</code></pre>