首页 > 解决方案 > 基于模式搜索重命名多个列

问题描述

我正在导入一个在行值中有很多缩进的 excel 文件。这些缩进用于指定类别和子类别。当我将文件移植到熊猫时,会创建许多未命名的列,例如:

['以百万计的水平','未命名:1','未命名:2','未命名:3','','国民健康总支出','医院护理','医师和临床服务','其他专业服务”、“牙科服务”、“未命名:10”、“其他健康、住宅和个人护理”、“家庭保健”、“护理设施和持续护理退休社区”、“未命名:14”、“处方药品”、“耐用医疗设备”、“其他非耐用医疗产品”、“未命名:18”、“未命名:19”、“州”、“联邦”、“健康保险净成本”、“政府公共卫生活动”、“未命名:24”、“研究”、“结构”、“设备”]

我尝试了几件事:

    type_of_prog_1.columns= type_of_prog_1.columns.str.replace('Unnamed: *', 
    '')
    type_of_prog_1= type_of_prog_1.rename(columns=lambda x: 
    x.replace('Unnamed: *', 'Level: *'))

输出是列的数字为 1、2、3 等。编号的列使以后切片变得困难。

理想情况下,我希望根据“未命名”之后的数字将列命名为“级别 1”或“级别 2”。因为有 24 个未命名列,我不想这样做- {“未命名 1”:“ 1级”,...}

标签: pythonpandasdataframerename

解决方案


根据您对问题的描述,您可以致电Index.str.replace

df.columns = df.columns.str.replace('Unnamed:', 'Level')

推荐阅读