一种方法是使用“replace
系列”映射列标签并将其传递给值(在这种情况下,这些标签相同):
>>> dfz.loc[:, 'A':'D'].replace(1, pd.Series(dfz.columns, dfz.columns))
A B C D
0 A B C D
1 0 0 0 0
2 0 0 0 0
3 A B C D
4 0 0 3 0
5 0 B C 0
为了使更改永久生效,您可以将返回的DataFrame分配回dfz.loc[:, 'A':'D']
。
除了解决方案外,请记住,将数字和字符串类型混合在列中时,可能会失去很多性能优势,因为熊猫被迫使用通用的“对象” dtype来保存值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句