提出问题

存在一个名为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批量修改列名_pandas修改DataFrame列名的实现方法相关推荐

  1. pandas 批量修改列名_pandas修改DataFrame列名的方法

    在做数据挖掘的时候,想改一个DataFrame的column名称,所以就查了一下,总结如下: 数据如下: >>>import pandas as pd >>>a = ...

  2. python读取txt文件为dataframe,python批量读取txt文件为DataFrame

    我们有时候会批量处理同一个文件夹下的文件,并且希望读取到一个文件里面便于我们计算操作.比方我有下图一系列的txt文件,我该如何把它们写入一个txt文件中并且读取为DataFrame格式呢? 首先我们要 ...

  3. python中columns用法_pandas中DataFrame修改index、columns名的方法示例

    一般常用的有两个方法: 1.使用DataFrame.index = [newName],DataFrame.columns = [newName],这两种方法可以轻松实现. 2.使用rename方法( ...

  4. python批量制作excel、修改excel,免去皮肉之苦。

    先上效果图,如下.每个文件除个人信息不一致.其余内容相同.简易脚本,批量生成. # 开头语:网上教程大多数是基础教学,无实际案例.我完成批量操作后进行记录,可供参考. # 场景:有汇总表,根据汇总表的 ...

  5. python列表转集合_Pandas把dataframe或series转换成list的方法

    把dataframe转换为list 输入多维dataframe: ? 1 df= pd.DataFrame({'a':[1,3,5,7,4,5,6,4,7,8,9],'b':[3,5,6,2,4,6, ...

  6. python pandas 日期格式_pandas 快速处理 date_time 日期格式方法

    当数据很多,且日期格式不标准时的时候,如果pandas.to_datetime 函数使用不当,会使得处理时间变得很长,提升速度的关键在于format的使用.下面举例进行说明: 示例数据: date 格 ...

  7. python导入txt为dataframe-python批量读取txt文件为DataFrame的方法

    我们有时候会批量处理同一个文件夹下的文件,并且希望读取到一个文件里面便于我们计算操作.比方我有下图一系列的txt文件,我该如何把它们写入一个txt文件中并且读取为DataFrame格式呢? 首先我们要 ...

  8. python读取txt为dataframe_python批量读取txt文件为DataFrame的方法

    我们有时候会批量处理同一个文件夹下的文件,并且希望读取到一个文件里面便于我们计算操作.比方我有下图一系列的txt文件,我该如何把它们写入一个txt文件中并且读取为DataFrame格式呢? 首先我们要 ...

  9. python读取txt为dataframe_python批量读取txt文件为DataFrame格式的方法总结

    python怎么批量读取txt文件为DataFrame格式 这次给大家带来python怎么批量读取txt文件为DataFrame格式,python批量读取txt文件为DataFrame格式的注意事项有 ...

最新文章

  1. leetcode--反转链表--python
  2. django.db.utils.DataError: (1406, Data too long for column 'gender' at row 1)
  3. 关于报表在移动端展现需你需要知道哪些?
  4. python安装库失败cannot determine archive_pip 无法安装 pip
  5. linux mint 用户管理,Linux Mint 新工具:将网站转变为独立的应用
  6. 【线段树】FREQUENT - Frequent values(luogu-SP1684 / poj 3368)
  7. poj 1715 Hexadecimal Numbers 排列组合
  8. Python数据结构与算法(五)--链表
  9. Spring Boot基础学习笔记10:配置国际化页面
  10. Debian完全卸载清理MySQL服务器
  11. 剑指offer面试题65. 不用加减乘除做加法(位运算)
  12. syslog函数输出在哪个文件中_syslog服务详解
  13. ubuntu中共享文件夹看不到
  14. 手指计数——长在身上的计算机
  15. Web前端开发技术栈(前端干货)
  16. 吐血整理!程序员常见的几种变现方式!
  17. platform模型
  18. 音乐相册(程序员表白必备,或者生日礼物)(小白学习向)
  19. 在ROS2中,通过MoveIt2控制Gazebo中的自定义机械手
  20. 西门子200与计算机通讯,S7 200与电脑通讯不上-工业支持中心-西门子中国

热门文章

  1. Ubuntu的商业模式
  2. jquery-210812-05---jquery函数02
  3. win7计算机各硬盘显示容量,Win7系统磁盘分区不显示容量怎么设置
  4. go-viper实践
  5. 在Windows 7 Media Center中无需电视调谐器观看电视节目
  6. android 内核调整工具,内核调谐器(Kernel Tuner)手机工具 for android v4.4.8 安卓版
  7. 魔兽三国服务器维护,官方平台霸榜三个月《魔兽争霸3》神仙三国重新定义防守玩法...
  8. (已解决)ModuleNotFoundError: No module named ‘pycocotools‘
  9. java 绘图板_java绘图板
  10. 产品读书《设计中的设计》-设计