<p>也许使用<code>groupby</code>和<code>lambda</code>表达式可以实现您的目标:</p>
<pre><code>gb = df.groupby('Lower File Name')['Lower File Name'].count()
duplicates = gb[gb > 1].index.tolist()
df['UniqueFileName'] = \
df.apply(lambda x: '{0}{1}'.format(x.ID if x['Lower File Name'] in duplicates
else "", x['File Name']), axis=1)
>>> df
ID File Name Lower File Name Duplicate UniqueFileName
0 1 Text.csv text.csv False 1Text.csv
1 2 TEXT.csv text.csv True 2TEXT.csv
2 3 unique.csv unique.csv False 3unique.csv
3 4 unique2.csv unique2.csv False Noneunique2.csv
4 5 text.csv text.csv True 5text.csv
5 6 uniquE.csv unique.csv True 6uniquE.csv
</code></pre>
<p>lambda表达式通过在<code>File Name</code>前面加上相关的<code>ID</code>来根据OP的要求生成一个唯一的文件名,只在{<cd5>}重复的情况下(即有多个文件具有相同的小写文件名)。否则,它只使用不带<code>ID</code>的小写文件名。在</p>
<p>请注意,此解决方案不使用上述数据帧中的<code>Duplicate</code>列。在</p>
<p>另外,简单地将<code>ID</code>附加到<code>Lower File Name</code>以生成一个唯一的名称不是更简单吗?您不需要上面的解决方案,甚至不需要检查重复项,假设ID是唯一的。在</p>