【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 列名相关推荐

  1. pandas 修改 DataFrame 列名

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

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

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

  3. 【Python茴香豆系列】之 PANDAS 如何遍历 DataFrame 的所有行

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

  4. 【Python茴香豆系列】之 PANDAS 获取 DataFrame 的行数

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

  5. Python语言学习之pandas:DataFrame二维表的简介、常用函数、常用案例(增删改查排序之选择指定列、根据条件选择特定数据、赋值、列名重命名、修改列数据、处理缺失值、列合并、分组之详细攻略

    Python语言学习之pandas:DataFrame二维表的简介.常用函数.常用案例(增删改查排序之选择指定列.根据条件选择特定数据.赋值.列名重命名.修改列数据.处理缺失值.列合并.分组之详细攻略 ...

  6. 【Python茴香豆系列】之 拍扁列表

    [Python茴香豆系列]之 拍扁列表 用 Python 编程,使用不同的方法来完成同一个目标,有时候是一件很有意思的事情.这让我想起鲁迅笔下的孔乙己.孔乙己对于茴香豆的茴字的四种写法颇有研究.我不敢 ...

  7. pandas筛选dataframe列名称中包含特定字符串的数据列(select columns contains specifiec substring in dataframe)

    pandas筛选dataframe列名称中包含特定字符串的数据列(select columns contains specifiec substring in dataframe) 目录 pandas ...

  8. pandas删除dataframe列名称中包含特定字符串的数据列(dropping columns contains specifiec substring in dataframe)

    pandas删除dataframe列名称中包含特定字符串的数据列(dropping columns contains specifiec substring in dataframe) 目录 pand ...

  9. Python语言学习之pandas:DataFrame二维表的简介、常用函数、常用案例之详细攻略

    Python语言学习之pandas:DataFrame二维表的简介.常用函数.常用案例之详细攻略 目录 DataFrame的简介 DataFrame的常用案例 1.写入和读取excel表格文件

最新文章

  1. ERROR: Failed to resolve: com.android.databinding:library:3.4.2
  2. 经典树型表结构之SORT_NO
  3. 深度学习核心技术精讲100篇(十九)--GBDT(梯度提升树) 和 Resnet (残差网络)的原理
  4. 一文读懂JDK7,8,JD9的HashMap,HashTable,ConcurrentHashMap及他们的区别
  5. Introduction to Mathematical Thinking - Week 3
  6. Girton conservations
  7. 关于 Qt 5,你所需要了解的基础知识
  8. Spring 连接 PostgreSQL
  9. java调用打印预览_急求一个用Java实现的打印及打印预览功能的Demo
  10. ASP.NET Core快速入门(第4章:ASP.NET Core HTTP介绍)--学习笔记
  11. C语言之文件读写探究(三):fputs、fgets、feof(一次读写一行字符(文本操作))
  12. Aptana studio 3汉化教程
  13. tensorflow: slim
  14. js 键盘事件 理解
  15. Prescan学习笔记
  16. TFN RMT 手持式路测仪 5G NR 手持式频谱分析仪
  17. PowerDesign
  18. 台式计算机有不有蓝牙,台式机没有蓝牙怎么办
  19. Pycharm中用Appium框架编写第一个自动化脚本
  20. 网络聊天程序的设计与实现

热门文章

  1. 企业网盘目前最好用的文件收集工具
  2. IDEA中使用git提交到Coding+Git常用的知识
  3. arcgis 学习笔记~~~
  4. 我的黑莓8830插CDMA卡成功
  5. PLC如何控制电子膨胀阀(暖通空调/制冷系统)
  6. 原生js实现红球碰撞篮球效果
  7. 【最全面的】71张图详解IP 地址、IP 路由、分片和重组、三层转发、ARP、ICMP
  8. 电脑误删除的文件怎么恢复?
  9. 关于 LINK : warning LNK4075: ignoring /INCREMENTAL due to /option 的连接警告问题
  10. 晏子:拒欲不道,恶爱不祥