pandas修改DataFrame列名的实现方法


Posted in Python onFebruary 22, 2019

提出问题

存在一个名为dataset的DataFrame

>>> dataset.columns
Index(['age', 'job', 'marital', 'education', 'default', 'housing', 'loan',
    'contact', 'month', 'day_of_week', 'duration', 'campaign', 'pdays',
    'previous', 'poutcome', 'emp.var.rate', 'cons.price.idx',
    'cons.conf.idx', 'euribor3m', 'nr.employed', 'y'],
   dtype='object')

现在, 我要将其columns名字改为:

>>> new_columns
Index(['age_0', 'job_1', 'marital_2', 'education_3', 'default_4', 'housing_5',
    'loan_6', 'contact_7', 'month_8', 'day_of_week_9', 'duration_10',
    'campaign_11', 'pdays_12', 'previous_13', 'poutcome_14',
    'emp.var.rate_15', 'cons.price.idx_16', 'cons.conf.idx_17',
    'euribor3m_18', 'nr.employed_19', 'y_20'],
   dtype='object')

该如何操作?

解决

一.通过DataFrame.columns类的自身属性修改:

1.无脑赋值直接修改

>>> # 先解决`new_columns`的推导问题
>>> # 列表推导
>>> new_columns_list = [column_str+'_'+str(i) for i ,column_str in enumerate(dataset.columns)]
>>> # 类型转换
>>> new_columns = pd.core.indexes.base.Index(new_columns_list)
>>> dataset.columns = new_columns

2.通过.map(mapper, na_action=None)函数来修改

>>> # 注:mapper 多运用 lambda 表达式
>>> # 但我似乎没有找到在 lambda 表达式中改变两个值的方法
>>> # 所以只能蹩脚地用一个全局变量i, 和映射函数mapper()
>>> # 希望大家能帮我找到方法

>>> i = 0
>>> def mapper(x): # 映射函数即 mapper
  global i
  x += '_' + str(i)
  i += 1
  return x
>>> dataset.columns.map(mapper)

3.参考博客用到了DataFrame.columns.str对象

用help(DataFrame.columns.str)翻遍了文档,

也没能找到可以被我拿来套用的方法, 想着抽时间把这段文档翻译一下

二.通过DataFrame.rename()函数来修改

1.暴力字典法(好处:可以只修改特定的列)

>>> # 此处先用字典推导法
>>> new_dict = {
  key:key+'_'+str(i)
  for i, key in enumerate(dataset.columns)
  }
>>> dataset.rename(columns=new_dict, inplace=True)

2.映射修改法

>>> # 原博文依然用到了 lambda 表达式
>>> # 我就再生搬硬套一次, 把上面的复制过来
>>> # 蹩脚地用一个全局变量i, 和映射函数mapper()

>>> i = 0
>>> def mapper(x): # 映射函数即 mapper
  global i
  x += '_' + str(i)
  i += 1
  return x
dataset.rename(columns=mapper, inplace=True)

稍微总结一下 : 字典推导和列表推导的使用方法很类似, 最大的区别是选择中括号还是大括号

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python网络编程学习笔记(五):socket的一些补充
Jun 09 Python
Python中使用异常处理来判断运行的操作系统平台方法
Jan 22 Python
Python脚本实现集群检测和管理功能
Mar 06 Python
Python利用多进程将大量数据放入有限内存的教程
Apr 01 Python
Python内建模块struct实例详解
Feb 02 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
Feb 03 Python
Python中函数参数调用方式分析
Aug 09 Python
Python检查和同步本地时间(北京时间)的实现方法
Dec 03 Python
python 多线程对post请求服务器测试并发的方法
Jun 13 Python
使用celery和Django处理异步任务的流程分析
Feb 19 Python
教你怎么用Python操作MySql数据库
May 31 Python
教你用python实现12306余票查询
Jun 30 Python
pyhanlp安装介绍和简单应用
Feb 22 #Python
Python3.7 dataclass使用指南小结
Feb 22 #Python
Python文件读写常见用法总结
Feb 22 #Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
Feb 22 #Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
Feb 22 #Python
浅谈python3.6的tkinter运行问题
Feb 22 #Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
Feb 22 #Python
You might like
php实现粘贴截图并完成上传功能
2015/05/17 PHP
PHP二维数组排序简单实现方法
2016/02/14 PHP
Convert Seconds To Hours
2007/06/16 Javascript
json 定义
2008/06/10 Javascript
javascript function、指针及内置对象
2009/02/19 Javascript
avascript中的自执行匿名函数应用示例
2014/09/15 Javascript
JS弹出可拖拽可关闭的div层完整实例
2015/02/13 Javascript
javascript中DOM复选框选择用法实例
2015/05/14 Javascript
基于jQuery+JSON的省市二三级联动效果
2015/06/05 Javascript
jQuery动态加载css文件实现方法
2016/06/15 Javascript
JavaScript与java语言有什么不同
2016/09/22 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
2016/11/11 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
2017/04/07 Javascript
vue之数据交互实例代码
2017/06/20 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
vue-router判断页面未登录自动跳转到登录页的方法示例
2018/11/04 Javascript
python标准日志模块logging的使用方法
2013/11/01 Python
python uuid模块使用实例
2015/04/08 Python
Python实现的数据结构与算法之基本搜索详解
2015/04/22 Python
Python正则表达式使用范例分享
2016/12/04 Python
Windows系统下多版本pip的共存问题详解
2017/10/10 Python
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
Python数据持久化shelve模块用法分析
2018/06/29 Python
Python使用selenium + headless chrome获取网页内容的方法示例
2019/10/16 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
印尼美容产品购物网站:PerfectBeauty.id
2017/12/01 全球购物
财务会计专业个人求职信范本
2014/01/08 职场文书
写自荐信三大法宝
2014/01/24 职场文书
先进工作者获奖感言
2014/02/08 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
小学班主任培训方案
2014/06/04 职场文书
安全演讲稿开场白
2014/08/25 职场文书
党员对十八届四中全会的期盼思想汇报范文
2014/10/17 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书
优秀的商业计划书,让融资一步到位
2019/05/07 职场文书
Vue + iView实现Excel上传功能的完整代码
2021/06/22 Vue.js