【pandas小技巧】--修改列的名称
重命名 pandas 数据中列的名称是一种常见的数据预处理任务。
这通常是因为原始数据中的列名称可能不够清晰或准确。例如,列名可能包含空格、大写字母、特殊字符或拼写错误。
使用 pandas 的 rename函数可以帮助我们更改列名,从而使数据更加清晰和易于理解。
此外,重命名列名还可以确保您的代码在维护和共享时更加易于交流和重用。
1. 列名中的特殊字符
比如如下测试数据:
import pandas as pd
df = pd.DataFrame(
{
"col name": ["name1", "name2", "name3"],
"#num@$": [1, 1, 2],
"坐标A": [1.2, 1.3, 2.3],
"坐标B": [2.3, 3.3, 5.7],
},
)
df

1.1. rename函数
使用rename函数消除列名中的空格和特殊符号:
df.rename({"col name": "col_name", "#num@$": "num"}, axis=1)

需要修改的列名不多时,用这种方式比较直观。
1.2. columns属性
使用columns修改列名时,需要设置所有的列名,哪怕不需要修改的列名也要列出来。
df.columns = ["col_name", "num", "坐标A", "坐标B"]
df

当需要修改的列名比较多,或者所有列名都需要修改时,用这种方式。
1.3. replace方法
df.columns = df.columns.str.replace(" ", "_")
df.columns = df.columns.str.replace("[#@$]", "", regex=True)
df

这种方式还支持通过正则表达式的方式替换,适合复杂替换的场景。
使用正则替换时,设置参数:regex=True
2. 列名的前缀
当遇到来自不同系统的同类数据时,合并之后会发现很多同样的列名,难以区分。
比如:
df1 = pd.DataFrame(
{
"坐标X": [1.2, 1.3, 2.3],
"坐标Y": [2.3, 3.3, 5.7],
},
)
df2 = pd.DataFrame(
{
"坐标X": [2.2, 3.3, 7.3],
"坐标Y": [1.3, 4.3, 3.7],
},
)
df = pd.concat([df1, df2], axis=1)
df

这时,我们可以在合并前给不同数据来源的数据的列名上加一个前缀(add_prefix)。
df1 = df1.add_prefix("A_")
df2 = df2.add_prefix("B_")
df = pd.concat([df1, df2], axis=1)
df

3. 列名的后缀
除了添加前缀,也可以用添加后缀的方式(add_suffix)来区分不同数据源的数据。
df1 = df1.add_suffix("_A")
df2 = df2.add_suffix("_B")
df = pd.concat([df1, df2], axis=1)
df

【pandas小技巧】--修改列的名称的更多相关文章
- DataTable 删除列 调整列顺序 修改列标题名称
DataTable dt = new DataTable(); //删除列 dt.Columns.Remove("Sex"); dt.Columns.Remove("Ag ...
- pandas小技巧
1. 删除列 import pandas as pd df.drop("Unnamed: 0", axis=1, inplace=True) 2. 转换列的格式 df[" ...
- 【转】 C# 小技巧之获取变量名称
link: http://www.cnblogs.com/gongy/p/lm-2015-04-03.html 今天在自我规范程序设计的时候,变量名匹配字符串来自配置文件,网上找了一会儿发现也有朋友在 ...
- iOS开发小技巧-修改SliderBar指针的样式(牢记这个方法,只能通过代码来修改)
代码: // 修改进度条的指针图片 [self.progressSlider setThumbImage:[UIImage imageNamed:@"player_slider_playba ...
- 【冷门】 C# 小技巧之获取变量名称
今天在自我规范程序设计的时候,变量名匹配字符串来自配置文件,网上找了一会儿发现也有朋友在找寻这种方式,很不容易找到一个解决方案来自http://www.th7.cn/Program/net/20140 ...
- iOS开发小技巧--修改按钮内部图片和文字之间的间距(xib)
调整按钮的Edge属性,选择调整图片的Edge还是label的Edge,如图:
- pandas 小技巧
1.找出某个字段包含某字符串的行: my_df[my_df['col_B'].str.contains('大连') > 0]或者 my_df[my_df['col_B'].apply(lambd ...
- SQL 增加列、修改列、删除列
SQL语句增加列.修改列.删除列 1.增加列: alter table tableName add columnName varchar(30) 2.1. 修改列类型: alter table tab ...
- SQL语句增加列、修改列类型、修改列、删除列
1.增加列: alter table tableName add columnName varchar(30) 2.修改列类型: alter table tableName alter column ...
- sql添加列,删除列,修改列
有时候,当数据库里面有数据了,再到设计器里面删除列,就删不掉.只能用代码删除. alter table tableName drop column columnName 添加列 ) 修改列 ) --修 ...
随机推荐
- 【Python基础】字典的基本使用
字典是由一系列键值对组成的无序集合.每个键值对包含一个键和一个对应的值.键必须是不可变的,如字符串.数字或元组.值可以是任意类型的对象.字典可以使用花括号({})或者内置函数dict()来创建. di ...
- #Python 缺失值的检测与处理,处理部分
- 2021-09-04:加油站。在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost
2021-09-04:加油站.在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升.你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost ...
- Stream流根据属性去重
List根据属性去重 创建一个user集合 User user1 = new User("user1", 18, "AAA"); User user2 = ne ...
- Docker入门与实战-Docker镜像的使用
Docker入门与实战 二.Docker镜像的使用 1.获取镜像 命令:docker [image] pull image-name[:tag] 说明: name为镜像仓库名称,严格来说, ...
- CF1825C LuoTianyi and the Show
传送门(luogu) 传送门(CF) 前言 我来水题解力 简化题意 \(n\) 个人,\(m\) 个座位,每个人落座的方法有三种: 坐最左边的人的左边,没人的话就做 \(m\) 号座位,若最左边的为 ...
- Flutter三棵树系列之详解各种Key
简介 key是widget.element和semanticsNode的唯一标识,同一个parent下的所有element的key不能重复,但是在特定条件下可以在不同parent下使用相同的key,比 ...
- Velocity 不用愁!Velocity 系统的前端工程化之路
Velocity是一个基于Java的Web页面模版引擎.十多年前,Velocity将Java代码从Web页面中分离出来,使得开发者能够并行网页开发和Java开发.随着十年前后端分离的浪潮涌动,回首再面 ...
- js 正则校验非法字符
今日使用 vue + element 对数据录入进行非法字符校验,到处找了一圈都不是想要的,于是自己按需求写一个 1.内容可以包含 大小写字母,中文和 . ( ) . , : % 2.内容第一位不允许 ...
- linux 条件语句和逻辑判断
目录 一.条件判断 二.逻辑判断 三.if和case 四.七个实验 一.条件判断 1.test测试 test [ 条件表达式 ] -e:测试目录是否存在 -d:测试是否为目录 -f:是否为文件 ...