本文参考自:pandas 修改 DataFrame 列名

原博客针对每个DataFrame.columns中的元素做相同的修改操作

而拙作是对每个元素做不同操作的生搬硬套, 请大家不吝赐教

提出问题

存在一个名为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 dataframe列名_pandas 修改 DataFrame 列名相关推荐

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

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

  2. python批量修改列名_pandas修改DataFrame列名的实现方法

    提出问题 存在一个名为dataset的DataFrame >>> dataset.columns Index(['age', 'job', 'marital', 'education ...

  3. python pandas dataframe函数_Pandas的DataFrame列操作

    13. Pandas的DataFrame列操作 本章主要研究一下DataFrame数据结构如何修改.增删等操作. 13.1 rename修改列名字 对一个dataframe的数据使用rename函数后 ...

  4. python series去重_pandas中DataFrame和Series的数据去重

    在SQL语言中去重是一件相当简单的事情,面对一个表(也可以称之为DataFrame)我们对数据进行去重只需要GROUP BY 就好. select custId,applyNo from tmp.on ...

  5. python pandas修改列名,Python_Pandas学习笔记02:DataFrame获取列名和修改列名

    Python_Pandas学习笔记02:DataFrame获取列名和修改列名 Python_Pandas学习笔记02:DataFrame获取列名和修改列名 一.参考资料 [1].?Pandas获取列名 ...

  6. 【Python茴香豆系列】之 PANDAS 修改 DataFrame 列名

    [Python茴香豆系列]之 PANDAS 修改 DataFrame 列名 用 Python 编程,使用不同的方法来完成同一个目标,有时候是一件很有意思的事情.这让我想起鲁迅笔下的孔乙己.孔乙己对于茴 ...

  7. Python之pandas:对dataframe数据的索引简介、应用大全(输出索引/重命名索引列/字段去重/设置复合索引/根据列名获取对应索引)、指定某字段为索引列等详细攻略

    Python之pandas:对dataframe数据的输出索引.重命名索引列/字段去重/设置复合索引/根据列名获取对应索引.指定某字段为索引列等详细攻略 目录 对pandas中dataframe数据中 ...

  8. R语言修改dataframe的列名(column name)实战

    R语言修改dataframe的列名(column name)实战 目录 R语言修改dataframe的列名(column name)实战 #使用colnames函数修改dataframe的列名

  9. pandas 修改 DataFrame 列名

    本文参考自:pandas 修改 DataFrame 列名 原博客针对每个DataFrame.columns中的元素做相同的修改操作 而拙作是对每个元素做不同操作的生搬硬套, 请大家不吝赐教 提出问题 ...

  10. pandas 改列名称_01_Pandas.DataFrame的行名和列名的修改

    01_Pandas.DataFrame的行名和列名的修改 pandas.DataFrame行名(index)和列名(columns)的修改方法如下. rename() 任意的行名(index)和列名( ...

最新文章

  1. sprintf,你知道多少?
  2. VTK:可视化算法之HeadBone
  3. 张萍萍 计科高职13-1 201303014010
  4. 汇顶软件开发初面总结20180921
  5. kafka启动_Kafka安装部署——单节点
  6. “去QE”时代下,QE如何破茧重生?
  7. android获取sd卡mount,Android如何获取所有存储卡挂载路径
  8. swift项目第七天:构建访客界面以及监听按钮点击
  9. poj 1251 Jungle Roads prim最小生成树基础
  10. liunx apache 的安装
  11. 数据库多表查询关联查询SQL语句
  12. 2021中国华录杯·算法大赛直通车!
  13. 打印机乱码不停打印_性价比高的打印机推荐【2020年9月】-十大高性价比家用/办公打印机...
  14. Matlab代码书写规范
  15. 一步一步教你使用云服务器部署爬虫
  16. DCT 变换的一些思考
  17. 视频处理基本技术(取帧、合帧)
  18. 滑动门技术制作不规则按钮
  19. PDF Squeezer for Mac(强大的PDF文件压缩工具)
  20. 《C语言程序设计》(谭浩强第五版) 第8章 善于利用指针 习题解析与答案

热门文章

  1. FreeMarker(七)Html转义
  2. Process Kill Technology Process Protection Against In Linux
  3. Asp.Net如何实现发送邮件 -详解
  4. 上周四更新决战俄罗斯小游戏的发包问题
  5. 素数生成器的算法【PHP EDITION】
  6. Matlab将double类型转换为正整数类型
  7. 【OpenCV学习笔记】【教程翻译】四(车牌检测之SVM分类)
  8. 【opencv】visualstudio实现opencvblobslib编译
  9. 深度学习笔记--激活函数:sigmoid,maxout
  10. java componentorientation_Java JLabel.applyComponentOrientation方法代码示例