擅长:python、mysql、java
<p>您可以利用<code>pandas.DataFrame.groupby</code>方法:</p>
<pre><code>result = collections.defaultdict(list)
for (day, cluster), group in df.groupby(["days", "cluster"]):
for comb in itertools.combinations(df["id"][group.index], 2):
result[comb].append(cluster)
</code></pre>
<p>这将为您提供所需的结果:</p>
<pre><code>defaultdict(<class 'list'>, {('aaa', 'bbb'): [0, 3], ('aaa', 'eee'): [0], ('bbb', 'eee'): [0], ('ccc', 'ddd'): [1], ('ccc', 'fff'): [1], ('ddd', 'fff'): [1], ('ggg', 'iii'): [0], ('hhh', 'lll'): [1], ('hhh', 'mmm'): [1], ('lll', 'mmm'): [1]})
</code></pre>