擅长:python、mysql、java
<p>让我们尝试通过换位和求和轴2进行广播:</p>
<pre><code>import pandas as pd
df = pd.DataFrame({
'A': {0: 0, 1: 1, 2: 2, 3: 2, 4: 0},
'B': {0: 2, 1: 0, 2: 2, 3: 0, 4: 0},
'C': {0: 0, 1: 1, 2: 0, 3: 0, 4: 0}
})
vals = df.T.values
e = (vals[:, None] == vals).sum(axis=2)
new_df = pd.DataFrame(e, columns=df.columns, index=df.columns)
print(new_df)
</code></pre>
<p><code>e</code>:</p>
<pre><code>[[5 2 3]
[2 5 2]
[3 2 5]]
</code></pre>
<p>返回到数据帧:</p>
<pre><code>new_df = pd.DataFrame(e, columns=df.columns, index=df.columns)
</code></pre>
<p><code>new_df</code>:</p>
<pre><code> A B C
A 5 2 3
B 2 5 2
C 3 2 5
</code></pre>