<p>我认为您首先要做的是计算每个标记的每个类别的出现次数,因此从以<code>tags</code>作为索引的Pandas数据帧开始:</p>
<pre><code>df =
1 2 3 4
tags
panorama schweiz verkehr news None
sport schweiz eishockey news None
stans panorama verkehr strassenverkehr news
eishockey sport davos news None
wirtschaft schweiz konsum kaffeetee news
jeanclaudegerber news srilanka tiere wissen
schule bellinzona panorama news None
luzern jrgenklopp fussball news None
panorama klima gretathunberg lissabon news
australien vermisstmeldung gesellschaft news None
gesellschaft amerika news ausstellung None
</code></pre>
<p>我会:</p>
<ol>
<li>堆栈数据帧(所有列都被熔化的熔化的特殊情况)</li>
<li>按标签分组</li>
<li>计算每个类别为每个标记显示的次数</li>
</ol>
<pre class="lang-py prettyprint-override"><code># This does all of the above at once
counts = df.stack().rename('category').reset_index('tags').groupby('tags').category.value_counts()
</code></pre>
<p>这给了</p>
<pre><code>counts =
tags category
australien gesellschaft 1
news 1
vermisstmeldung 1
eishockey davos 1
news 1
sport 1
gesellschaft amerika 1
ausstellung 1
news 1
jeanclaudegerber news 1
srilanka 1
tiere 1
wissen 1
luzern fussball 1
jrgenklopp 1
news 1
panorama news 2
gretathunberg 1
klima 1
lissabon 1
schweiz 1
verkehr 1
schule bellinzona 1
news 1
panorama 1
sport eishockey 1
news 1
schweiz 1
stans news 1
panorama 1
strassenverkehr 1
verkehr 1
wirtschaft kaffeetee 1
konsum 1
news 1
schweiz 1
Name: category, dtype: int64
</code></pre>
<p>然后,您可以将此系列展开以生成一个表:</p>
<pre class="lang-py prettyprint-override"><code>counts.unstack()
category amerika ausstellung bellinzona davos eishockey \
tags
australien NaN NaN NaN NaN NaN
eishockey NaN NaN NaN 1.0 NaN
gesellschaft 1.0 1.0 NaN NaN NaN
jeanclaudegerber NaN NaN NaN NaN NaN
luzern NaN NaN NaN NaN NaN
panorama NaN NaN NaN NaN NaN
schule NaN NaN 1.0 NaN NaN
sport NaN NaN NaN NaN 1.0
stans NaN NaN NaN NaN NaN
wirtschaft NaN NaN NaN NaN NaN
...
</code></pre>
<p>然后你可以在那个矩阵上做关联</p>