python dataframe列名_pandas 修改 DataFrame 列名
本文参考自: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 列名相关推荐
- pandas 批量修改列名_pandas修改DataFrame列名的方法
在做数据挖掘的时候,想改一个DataFrame的column名称,所以就查了一下,总结如下: 数据如下: >>>import pandas as pd >>>a = ...
- python批量修改列名_pandas修改DataFrame列名的实现方法
提出问题 存在一个名为dataset的DataFrame >>> dataset.columns Index(['age', 'job', 'marital', 'education ...
- python pandas dataframe函数_Pandas的DataFrame列操作
13. Pandas的DataFrame列操作 本章主要研究一下DataFrame数据结构如何修改.增删等操作. 13.1 rename修改列名字 对一个dataframe的数据使用rename函数后 ...
- python series去重_pandas中DataFrame和Series的数据去重
在SQL语言中去重是一件相当简单的事情,面对一个表(也可以称之为DataFrame)我们对数据进行去重只需要GROUP BY 就好. select custId,applyNo from tmp.on ...
- python pandas修改列名,Python_Pandas学习笔记02:DataFrame获取列名和修改列名
Python_Pandas学习笔记02:DataFrame获取列名和修改列名 Python_Pandas学习笔记02:DataFrame获取列名和修改列名 一.参考资料 [1].?Pandas获取列名 ...
- 【Python茴香豆系列】之 PANDAS 修改 DataFrame 列名
[Python茴香豆系列]之 PANDAS 修改 DataFrame 列名 用 Python 编程,使用不同的方法来完成同一个目标,有时候是一件很有意思的事情.这让我想起鲁迅笔下的孔乙己.孔乙己对于茴 ...
- Python之pandas:对dataframe数据的索引简介、应用大全(输出索引/重命名索引列/字段去重/设置复合索引/根据列名获取对应索引)、指定某字段为索引列等详细攻略
Python之pandas:对dataframe数据的输出索引.重命名索引列/字段去重/设置复合索引/根据列名获取对应索引.指定某字段为索引列等详细攻略 目录 对pandas中dataframe数据中 ...
- R语言修改dataframe的列名(column name)实战
R语言修改dataframe的列名(column name)实战 目录 R语言修改dataframe的列名(column name)实战 #使用colnames函数修改dataframe的列名
- pandas 修改 DataFrame 列名
本文参考自:pandas 修改 DataFrame 列名 原博客针对每个DataFrame.columns中的元素做相同的修改操作 而拙作是对每个元素做不同操作的生搬硬套, 请大家不吝赐教 提出问题 ...
- pandas 改列名称_01_Pandas.DataFrame的行名和列名的修改
01_Pandas.DataFrame的行名和列名的修改 pandas.DataFrame行名(index)和列名(columns)的修改方法如下. rename() 任意的行名(index)和列名( ...
最新文章
- sprintf,你知道多少?
- VTK:可视化算法之HeadBone
- 张萍萍 计科高职13-1 201303014010
- 汇顶软件开发初面总结20180921
- kafka启动_Kafka安装部署——单节点
- “去QE”时代下,QE如何破茧重生?
- android获取sd卡mount,Android如何获取所有存储卡挂载路径
- swift项目第七天:构建访客界面以及监听按钮点击
- poj 1251 Jungle Roads prim最小生成树基础
- liunx apache 的安装
- 数据库多表查询关联查询SQL语句
- 2021中国华录杯·算法大赛直通车!
- 打印机乱码不停打印_性价比高的打印机推荐【2020年9月】-十大高性价比家用/办公打印机...
- Matlab代码书写规范
- 一步一步教你使用云服务器部署爬虫
- DCT 变换的一些思考
- 视频处理基本技术(取帧、合帧)
- 滑动门技术制作不规则按钮
- PDF Squeezer for Mac(强大的PDF文件压缩工具)
- 《C语言程序设计》(谭浩强第五版) 第8章 善于利用指针 习题解析与答案
热门文章
- FreeMarker(七)Html转义
- Process Kill Technology Process Protection Against In Linux
- Asp.Net如何实现发送邮件 -详解
- 上周四更新决战俄罗斯小游戏的发包问题
- 素数生成器的算法【PHP EDITION】
- Matlab将double类型转换为正整数类型
- 【OpenCV学习笔记】【教程翻译】四(车牌检测之SVM分类)
- 【opencv】visualstudio实现opencvblobslib编译
- 深度学习笔记--激活函数:sigmoid,maxout
- java componentorientation_Java JLabel.applyComponentOrientation方法代码示例