<p>您还可以:</p>
<pre><code>df.groupby(df.columns, axis=1).agg(lambda x: ','.join(x.values)))
Col1 Col2 Col3
Index
A CA1 CA2,CA5 CA3
B CB1 CB2,CB5 CB3
C CC1 CC2,CC5 CC3
D CD1 CD2,CD5 CD3
E CE1 CE2,CE5 CE3
</code></pre>
<p>详细信息:在<code>df.columns</code>上使用<code>.groupby()</code>对重复项进行分组:</p>
^{2}$
<p>然后,使用<code>.agg()</code>和<code>','.join()</code>折叠<code>grouped</code>列中的{<cd5>},如下所示:</p>
<pre><code>df.groupby(df.columns, axis=1).apply(lambda x: x.values)
Col1 [[CA1], [CB1], [CC1], [CD1], [CE1]]
Col2 [[CA5, CA5], [CB5, CB5], [CC5, CC5], [CD5, CD5...
Col3 [[CA3], [CB3], [CC3], [CD3], [CE3]]
</code></pre>
<p>由于只有重复列具有多个值,因此只有它们将被联接,因此您可以得到:</p>
<pre><code> Col1 Col2 Col3
Index
A CA1 CA5,CA5 CA3
B CB1 CB5,CB5 CB3
C CC1 CC5,CC5 CC3
D CD1 CD5,CD5 CD3
E CE1 CE5,CE5 CE3
</code></pre>
<p>使用<code>None</code>类型值,您可以:</p>
<pre><code>df.groupby(df.columns, axis=1).apply(lambda x: x.apply(lambda y: ','.join([l for l in y if l is not None]), axis=1))
</code></pre>
<p>获得:</p>
<pre><code> Col1 Col2 Col3
Index
A CA1 CA5,CA5 CA3
B CB1 CB5,CB5 CB3
C CC1 CC5,CC5 CC3
D CD1 CD5 CD3
E CE1 CE5,CE5 CE3
</code></pre>