【Python茴香豆系列】之 PANDAS 修改 DataFrame 列名
【Python茴香豆系列】之 PANDAS 修改 DataFrame 列名
用 Python 编程,使用不同的方法来完成同一个目标,有时候是一件很有意思的事情。这让我想起鲁迅笔下的孔乙己。孔乙己对于茴香豆的茴字的四种写法颇有研究。我不敢自比孔乙己,这里搜集一些 Python 的茴香豆,以飨各位码农。
首先准备一个函数,用来生成用于测试的 DataFrame 。这个 DataFrame 有 3 列,名称分别为 a 、 b 和 c 。
import pandas as pd
def get_df():return pd.DataFrame({'a':[1,2,3], 'b':[4,5,6], 'c':[7,8,9]})
get_df()
a | b | c | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
茴香豆一: columns 属性
有一天, BOSS 说要把 DataFrame 的列名都改为大写。于是我简单粗暴地是把一个 List 丢给了 DataFrame 的 columns 属性,任务完成。示例如下:
df = get_df()
df.columns=['A','B','C']
df
A | B | C | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
茴香豆二: columns.str
有一天, BOSS 给我一个有 300 列的 DataFrame ,说要把列名都改为大写。显然,使用上面的方法是浪费生命的。于是我使用了 columns.str 。示例如下:
df = get_df()
df.columns = df.columns.str.upper()
df
A | B | C | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
茴香豆三: rename 方法1
有一天, BOSS 给我一个有 300 列的 DataFrame ,说要把列 a 改名为 A ,列 c 改名为 C ,其他列不变。于是我使用了 rename 方法。示例如下:
df = get_df()
df.rename(columns={'a': 'A', 'c': 'C'})
A | b | C | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
rename 方法有个 inplace 参数,默认值为 False 。上例中, df 并没有改变。
df
a | b | c | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
如果要改变的话,需要设置 inplace 为 True 。
df.rename(columns={'a': 'A', 'c': 'C'}, inplace=True)
df
A | b | C | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
茴香豆四: rename 方法2
当然,也可以使用函数,例如:
df.rename(columns=lambda x:x.upper())
A | B | C | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
茴香豆五: rename 方法3
这里不使用 columns 参数,例如:
df.rename(str.upper, axis=1)
A | B | C | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
rename 是一个好东西,详细的用法参见:官方文档 。
那么使用 rename 有什么好处呢?举个例子吧:
df = get_df()
df.T.rename(columns=lambda x:x+1).T
a | b | c | |
---|---|---|---|
1 | 1 | 4 | 7 |
2 | 2 | 5 | 8 |
3 | 3 | 6 | 9 |
茴香豆六: 删除再添加
如果在心情特别开心的情况下,我也许可能会考虑:
df = get_df()
for k, v in {'a': 'A','b': 'B', 'c': 'C'}.items():df[v] = df.pop(k)
df
A | B | C | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
【Python茴香豆系列】之 PANDAS 修改 DataFrame 列名相关推荐
- pandas 修改 DataFrame 列名
本文参考自:pandas 修改 DataFrame 列名 原博客针对每个DataFrame.columns中的元素做相同的修改操作 而拙作是对每个元素做不同操作的生搬硬套, 请大家不吝赐教 提出问题 ...
- pandas 批量修改列名_pandas修改DataFrame列名的方法
在做数据挖掘的时候,想改一个DataFrame的column名称,所以就查了一下,总结如下: 数据如下: >>>import pandas as pd >>>a = ...
- 【Python茴香豆系列】之 PANDAS 如何遍历 DataFrame 的所有行
[Python茴香豆系列]之 PANDAS 如何遍历 DataFrame 的所有行 用 Python 编程,使用不同的方法来完成同一个目标,有时候是一件很有意思的事情.这让我想起鲁迅笔下的孔乙己.孔乙 ...
- 【Python茴香豆系列】之 PANDAS 获取 DataFrame 的行数
[Python茴香豆系列]之 PANDAS 获取 DataFrame 的行数 用 Python 编程,使用不同的方法来完成同一个目标,有时候是一件很有意思的事情.这让我想起鲁迅笔下的孔乙己.孔乙己对于 ...
- Python语言学习之pandas:DataFrame二维表的简介、常用函数、常用案例(增删改查排序之选择指定列、根据条件选择特定数据、赋值、列名重命名、修改列数据、处理缺失值、列合并、分组之详细攻略
Python语言学习之pandas:DataFrame二维表的简介.常用函数.常用案例(增删改查排序之选择指定列.根据条件选择特定数据.赋值.列名重命名.修改列数据.处理缺失值.列合并.分组之详细攻略 ...
- 【Python茴香豆系列】之 拍扁列表
[Python茴香豆系列]之 拍扁列表 用 Python 编程,使用不同的方法来完成同一个目标,有时候是一件很有意思的事情.这让我想起鲁迅笔下的孔乙己.孔乙己对于茴香豆的茴字的四种写法颇有研究.我不敢 ...
- pandas筛选dataframe列名称中包含特定字符串的数据列(select columns contains specifiec substring in dataframe)
pandas筛选dataframe列名称中包含特定字符串的数据列(select columns contains specifiec substring in dataframe) 目录 pandas ...
- pandas删除dataframe列名称中包含特定字符串的数据列(dropping columns contains specifiec substring in dataframe)
pandas删除dataframe列名称中包含特定字符串的数据列(dropping columns contains specifiec substring in dataframe) 目录 pand ...
- Python语言学习之pandas:DataFrame二维表的简介、常用函数、常用案例之详细攻略
Python语言学习之pandas:DataFrame二维表的简介.常用函数.常用案例之详细攻略 目录 DataFrame的简介 DataFrame的常用案例 1.写入和读取excel表格文件
最新文章
- ERROR: Failed to resolve: com.android.databinding:library:3.4.2
- 经典树型表结构之SORT_NO
- 深度学习核心技术精讲100篇(十九)--GBDT(梯度提升树) 和 Resnet (残差网络)的原理
- 一文读懂JDK7,8,JD9的HashMap,HashTable,ConcurrentHashMap及他们的区别
- Introduction to Mathematical Thinking - Week 3
- Girton conservations
- 关于 Qt 5,你所需要了解的基础知识
- Spring 连接 PostgreSQL
- java调用打印预览_急求一个用Java实现的打印及打印预览功能的Demo
- ASP.NET Core快速入门(第4章:ASP.NET Core HTTP介绍)--学习笔记
- C语言之文件读写探究(三):fputs、fgets、feof(一次读写一行字符(文本操作))
- Aptana studio 3汉化教程
- tensorflow: slim
- js 键盘事件 理解
- Prescan学习笔记
- TFN RMT 手持式路测仪 5G NR 手持式频谱分析仪
- PowerDesign
- 台式计算机有不有蓝牙,台式机没有蓝牙怎么办
- Pycharm中用Appium框架编写第一个自动化脚本
- 网络聊天程序的设计与实现