python批量修改列名_pandas修改DataFrame列名的实现方法
提出问题
存在一个名为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列名的实现方法相关推荐
- pandas 批量修改列名_pandas修改DataFrame列名的方法
在做数据挖掘的时候,想改一个DataFrame的column名称,所以就查了一下,总结如下: 数据如下: >>>import pandas as pd >>>a = ...
- python读取txt文件为dataframe,python批量读取txt文件为DataFrame
我们有时候会批量处理同一个文件夹下的文件,并且希望读取到一个文件里面便于我们计算操作.比方我有下图一系列的txt文件,我该如何把它们写入一个txt文件中并且读取为DataFrame格式呢? 首先我们要 ...
- python中columns用法_pandas中DataFrame修改index、columns名的方法示例
一般常用的有两个方法: 1.使用DataFrame.index = [newName],DataFrame.columns = [newName],这两种方法可以轻松实现. 2.使用rename方法( ...
- python批量制作excel、修改excel,免去皮肉之苦。
先上效果图,如下.每个文件除个人信息不一致.其余内容相同.简易脚本,批量生成. # 开头语:网上教程大多数是基础教学,无实际案例.我完成批量操作后进行记录,可供参考. # 场景:有汇总表,根据汇总表的 ...
- 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, ...
- python pandas 日期格式_pandas 快速处理 date_time 日期格式方法
当数据很多,且日期格式不标准时的时候,如果pandas.to_datetime 函数使用不当,会使得处理时间变得很长,提升速度的关键在于format的使用.下面举例进行说明: 示例数据: date 格 ...
- python导入txt为dataframe-python批量读取txt文件为DataFrame的方法
我们有时候会批量处理同一个文件夹下的文件,并且希望读取到一个文件里面便于我们计算操作.比方我有下图一系列的txt文件,我该如何把它们写入一个txt文件中并且读取为DataFrame格式呢? 首先我们要 ...
- python读取txt为dataframe_python批量读取txt文件为DataFrame的方法
我们有时候会批量处理同一个文件夹下的文件,并且希望读取到一个文件里面便于我们计算操作.比方我有下图一系列的txt文件,我该如何把它们写入一个txt文件中并且读取为DataFrame格式呢? 首先我们要 ...
- python读取txt为dataframe_python批量读取txt文件为DataFrame格式的方法总结
python怎么批量读取txt文件为DataFrame格式 这次给大家带来python怎么批量读取txt文件为DataFrame格式,python批量读取txt文件为DataFrame格式的注意事项有 ...
最新文章
- leetcode--反转链表--python
- django.db.utils.DataError: (1406, Data too long for column 'gender' at row 1)
- 关于报表在移动端展现需你需要知道哪些?
- python安装库失败cannot determine archive_pip 无法安装 pip
- linux mint 用户管理,Linux Mint 新工具:将网站转变为独立的应用
- 【线段树】FREQUENT - Frequent values(luogu-SP1684 / poj 3368)
- poj 1715 Hexadecimal Numbers 排列组合
- Python数据结构与算法(五)--链表
- Spring Boot基础学习笔记10:配置国际化页面
- Debian完全卸载清理MySQL服务器
- 剑指offer面试题65. 不用加减乘除做加法(位运算)
- syslog函数输出在哪个文件中_syslog服务详解
- ubuntu中共享文件夹看不到
- 手指计数——长在身上的计算机
- Web前端开发技术栈(前端干货)
- 吐血整理!程序员常见的几种变现方式!
- platform模型
- 音乐相册(程序员表白必备,或者生日礼物)(小白学习向)
- 在ROS2中,通过MoveIt2控制Gazebo中的自定义机械手
- 西门子200与计算机通讯,S7 200与电脑通讯不上-工业支持中心-西门子中国
热门文章
- Ubuntu的商业模式
- jquery-210812-05---jquery函数02
- win7计算机各硬盘显示容量,Win7系统磁盘分区不显示容量怎么设置
- go-viper实践
- 在Windows 7 Media Center中无需电视调谐器观看电视节目
- android 内核调整工具,内核调谐器(Kernel Tuner)手机工具 for android v4.4.8 安卓版
- 魔兽三国服务器维护,官方平台霸榜三个月《魔兽争霸3》神仙三国重新定义防守玩法...
- (已解决)ModuleNotFoundError: No module named ‘pycocotools‘
- java 绘图板_java绘图板
- 产品读书《设计中的设计》-设计