python - 基于模式搜索重命名多个列
问题描述
我正在导入一个在行值中有很多缩进的 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级”,...}
解决方案
根据您对问题的描述,您可以致电Index.str.replace
:
df.columns = df.columns.str.replace('Unnamed:', 'Level')
推荐阅读
- node.js - 出现“npm outdated”错误:仅支持标签、版本和范围
- github - GitHub 目录拉取
- django - 如何在 Django Rest 中从管理员更改分页大小
- node.js - 使用猫鼬收集计数
- python - 抓取我不想但不知道如何排除的链接
- json - 回复头部信息并将提取数组添加到相同的结果
- java - Intellij 想法 - 堆栈跟踪中没有换行符
- android - Android 12-Material You 主题在模拟器中不起作用
- javascript - MomentJS 将本地化日期转换为 UTC
- sql - 根据条件创建具有不同列的表(这是 SQL 版本)