Python Pandas中转置数据集后如何去除带索引数字的多余列头
Pandas转置后删除多余数字列头解决方案
原代码错误说明
- Pandas 不存在
drop_index内置方法,属于方法名调用错误 - 参数命名不符合规范:
inplace为全小写,官方不存在Drop参数
对应解决方法
你遇到的转置后出现带数字的多余列头,本质是原DataFrame的默认整数索引在转置后被自动映射为新的列索引层级,按实际场景选择对应操作即可:
场景1:单层多余数字列头,需用转置后第一行作为新列名
# 执行转置 AIR_LINES_TRANSPOSE = AIR_LINES.transpose() # 取第一行数据作为新列名 AIR_LINES_TRANSPOSE.columns = AIR_LINES_TRANSPOSE.iloc[0] # 删除已用作列名的冗余第一行 AIR_LINES_TRANSPOSE = AIR_LINES_TRANSPOSE[1:] # 可选:重置索引清除原行索引残留 AIR_LINES_TRANSPOSE.reset_index(drop=True, inplace=True)
场景2:多层列索引(MultiIndex),多余数字为其中一层
AIR_LINES_TRANSPOSE = AIR_LINES.transpose() # 删除指定层级的列索引,level参数填要删除的数字层的序号,通常为0 AIR_LINES_TRANSPOSE.columns = AIR_LINES_TRANSPOSE.columns.droplevel(level=0)
场景3:仅展示时出现多余数字列头,无需删除数据
如果只是索引名展示多余,不需要改动实际数据,直接清空对应名称即可:
# 清空列索引的名称 AIR_LINES_TRANSPOSE.columns.name = None # 如果是行索引名称多余,执行这行 AIR_LINES_TRANSPOSE.index.name = None
内容的提问来源于stack exchange,提问作者v-jh
相关产品推荐
相关产品推荐

