打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
pandas DataFrame数据重命名列名的几种方式

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

文章目录

  • 前言

  • 一 部分列重命名

  • 二 全部列重命名

  • 三 str 批量修改列名

  • 四 读取csv文件重命名

  • 后记

前言

首先,我们创建一个5行4列的DataFrame数据作为示例,进行演示

import pandas as pdimport numpy as np

df = pd.DataFrame(data=np.arange(20).reshape(5,4), columns=['a', 'b', 'c', 'd'])df
    a   b   c   d0   0   1   2   31   4   5   6   72   8   9  10  113  12  13  14  154  16  17  18  19

一 部分列重命名

有时候,我们只需要将部分列的列名重命名。可以使用字典的方式,更改指定的列名。

df.rename(columns={'a': 'A'})A   b   c   d0   0   1   2   31   4   5   6   72   8   9  10  113  12  13  14  154  16  17  18  19

没有指定inplace=True, df本身的列名并没有改变。

df
    a   b   c   d0   0   1   2   31   4   5   6   72   8   9  10  113  12  13  14  154  16  17  18  19

这种情况下比较适合不变原有数据,通过赋值对新数据列改名,如下:

df2 = df.rename(columns={'a': 'A'})df2
    A   b   c   d0   0   1   2   31   4   5   6   72   8   9  10  113  12  13  14  154  16  17  18  19

如果我们指定inplace=True,则会改变原始数据

df.rename(columns={'a': 'A', 'c': 'C', 'd': 'D'}, inplace=True)df
    A   b   C   D0   0   1   2   31   4   5   6   72   8   9  10  113  12  13  14  154  16  17  18  19

二 全部列重命名

df.columns = new_columns, new_coumns 可以是列表或元组, 但新旧列名的长度必须一致,否者会不匹配报错。这种改变方式是直接改变了原始数据。

df.columns = ['a1', 'b1', 'c1', 'd1']df
   a1  b1  c1  d10   0   1   2   31   4   5   6   72   8   9  10  113  12  13  14  154  16  17  18  19

三 str 批量修改列名

将列名’a1’, ‘b1’… 批量改为’a2’, 'b2’…

df.columns = df.columns.str.replace('1', '2')df
   a2  b2  c2  d20   0   1   2   31   4   5   6   72   8   9  10  113  12  13  14  154  16  17  18  19

其实str的原理和第二章是一样的,不同的是,我们对列名进行了字符串的操作。


四 读取csv文件重命名

names = new_columns, 在读取文件的时候直接重命名列名。

df = pd.read_csv('xxx.csv', names=new_columns, header=0)

后记

这里讲一个之前在读csv文件, 重命名时,踩到的一个小坑。

以前读csv文件,读到重命名时,我都是先读文件,转成DataFrame之后再重命名的。

df = pd.read_csv('xxx.csv')df.columns = new_columns

这样做,大部分情况下不会有什么问题,直到有天我读的是无列名的csv文件。pandas默认将第一行数据作为了列名。这时我再进行df.columns = new_columns 时,第一行数据就会因为作为列名,被new_columns替换了。这就导致我第一行数据白白丢失了(想哭)。今天写这篇博客的目的。也就是想记住这个坑。

pandas的read_csv() 函数,其实还踩过很多坑,里面有很多参数,我会在之后的博客里详解read_csv()的各个参数的用法。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Pandas概论
Python 数据操作教程(最佳Pandas教程通过 50 个示例学习)
pandas 修改 DataFrame 列名
Python中的结构化数据分析利器
Python数据结构:数据框
15个基本且常用Pandas代码片段
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服