擅长:python、mysql、java
<p>从您的示例来看,列和行具有相同的标签。如果是,您可以使用:</p>
<pre><code>for i in df.columns:
df[i][i] = 0
</code></pre>
<p>即使标签的顺序不相同(即对角线上不应出现零),也可以这样做。在</p>
<p>如果有列标签不显示为行标签和viceversa,则需要更详细的解决方案:</p>
^{pr2}$
<p>如果行或列上的名称重复,请参考<a href="https://stackoverflow.com/a/56951356/10426037">@thesilkworm's answer</a>。您也可以使用<code>unique()</code>istead of <code>set</code>,但想法是一样的。在</p>
<pre><code>for i in df.index.unique().intersection(df.columns.unique()):
df.loc[i, i] = 0
</code></pre>