擅长:python、mysql、java
<ol>
<li>创建一个数据帧</li>
</ol>
<pre><code>import pandas as pd
df = pd.DataFrame(data=[[1, 1, 1, 1],
[0, 1, 1, 0],
[0, 1, 0, 0],
[1, 1, 0, 1],
[0, 0, 0, 1]],
index=['A', 'B', 'C', 'D', 'E',],
columns=['Trait_1', 'Trait_2', 'Trait_3', 'Trait_4'])
</code></pre>
<ol start=“2”>
<li>使用矩阵乘法创建常见特征的矩阵(您描述的)</li>
</ol>
<pre><code>common_traits = df @ df.T
</code></pre>
<ol start=“3”>
<li>为每个人打印你想要的字符串(最具共同特征的前10位人物)</li>
</ol>
<pre><code>n = 10
for index, row in common_traits.iterrows():
top10 = row.drop(index).nlargest(n)
top10 = top10[top10 > 0]
string = ', '.join(top10.index + top10.map(lambda x: f' ({x} trait{"s" if x != 1 else ""})'))
print(f'{index}: {string}')
</code></pre>
<h3>输出</h3>
<pre><code>A: D (3 traits), B (2 traits), C (1 trait), E (1 trait)
B: A (2 traits), C (1 trait), D (1 trait)
C: A (1 trait), B (1 trait), D (1 trait)
D: A (3 traits), B (1 trait), C (1 trait), E (1 trait)
E: A (1 trait), D (1 trait)
</code></pre>