删除列及去重后如何将DataFrame列标签从0开始重新编号
解决方案:将DataFrame列标签从0开始重新编号
嘿,针对你的需求,有几种简单直接的方法可以把你的DataFrame列标签改成从0开始的连续整数,我给你列出来:
方法1:直接赋值列名(最简洁通用)
这是最推荐的方式,不管你有多少列都能自动适配:
# 用range生成从0开始的连续整数,数量等于DataFrame的列数 XY1.columns = range(XY1.shape[1])
解释:XY1.shape[1]会返回你的DataFrame的列数(这里是4),range(4)生成0,1,2,3,直接赋值给columns就能替换掉原来的列标签。
方法2:手动指定列名(适合列数固定的情况)
如果你明确知道列数是4,也可以直接写死列名列表:
XY1.columns = [0, 1, 2, 3]
这种方法更直观,但如果之后列数变化了需要手动修改,灵活性不如第一种。
方法3:使用rename方法(适配复杂映射场景)
如果之后你需要做更复杂的列名映射,也可以用rename方法配合lambda函数:
XY1 = XY1.rename(columns=lambda _: list(range(XY1.shape[1]))[list(XY1.columns).index(_)])
不过这种方法相对冗余,除非你有额外的映射需求,否则方法1是最优解。
你可以用print(XY1.columns)验证一下,列标签应该已经变成Int64Index([0, 1, 2, 3], dtype='int64')啦。
内容的提问来源于stack exchange,提问作者sranga
相关产品推荐
相关产品推荐

