【pandas小技巧】--修改列的名称

pandas,技巧,修改,名称 · 浏览次数 : 223

小编点评

**重命名 pandas 数据中列的名称** 重命名 pandas 数据中列的名称是一种常见的数据预处理任务,可以帮助我们使数据更加清晰和易于理解。 **方法:** 1. **rename 函数**:使用 `rename` 函数更改列名,接收两个参数:旧列名和新列名。 ```python df.rename({ "col name": "col_name", "#num@$\": "num" }, axis=1) ``` 2. **columns 属性**:使用 `columns` 属性更改列名,接收一个列表。 ```python df.columns = ["col_name", "num", "坐标A", "坐标B"] ``` 3. **replace 方法**:使用 `replace` 方法替换列名,接受正则表达式作为匹配模式。 ```python df.columns = df.columns.str.replace(" \", "_") df.columns = df.columns.str.replace("[#@$]\", '') ``` **其他技巧:** * 使用 `regex=True` 参数进行正则表达式替换。 * 在合并数据时给不同数据来源的数据的列名上加一个前缀或后缀。

正文

重命名 pandas 数据中列的名称是一种常见的数据预处理任务。
这通常是因为原始数据中的列名称可能不够清晰或准确。例如,列名可能包含空格、大写字母、特殊字符或拼写错误。

使用 pandasrename函数可以帮助我们更改列名,从而使数据更加清晰和易于理解。
此外,重命名列名还可以确保您的代码在维护和共享时更加易于交流和重用。

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

image.png

1.1. rename函数

使用rename函数消除列名中的空格和特殊符号:

df.rename({"col name": "col_name", "#num@$": "num"}, axis=1)

image.png
需要修改的列名不多时,用这种方式比较直观。

1.2. columns属性

使用columns修改列名时,需要设置所有的列名,哪怕不需要修改的列名也要列出来。

df.columns = ["col_name", "num", "坐标A", "坐标B"]
df

image.png
当需要修改的列名比较多,或者所有列名都需要修改时,用这种方式。

1.3. replace方法

df.columns = df.columns.str.replace(" ", "_")
df.columns = df.columns.str.replace("[#@$]", "", regex=True)
df

image.png
这种方式还支持通过正则表达式的方式替换,适合复杂替换的场景。
使用正则替换时,设置参数: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

image.png

这时,我们可以在合并前给不同数据来源的数据的列名上加一个前缀(add_prefix)。

df1 = df1.add_prefix("A_")
df2 = df2.add_prefix("B_")

df = pd.concat([df1, df2], axis=1)
df

image.png

3. 列名的后缀

除了添加前缀,也可以用添加后缀的方式(add_suffix)来区分不同数据源的数据。

df1 = df1.add_suffix("_A")
df2 = df2.add_suffix("_B")

df = pd.concat([df1, df2], axis=1)
df

image.png

与【pandas小技巧】--修改列的名称相似的内容:

【pandas小技巧】--修改列的名称

重命名 `pandas` 数据中列的名称是一种常见的数据预处理任务。这通常是因为原始数据中的列名称可能不够清晰或准确。例如,列名可能包含空格、大写字母、特殊字符或拼写错误。 使用 `pandas` 的 `rename`函数可以帮助我们更改列名,从而使数据更加清晰和易于理解。此外,重命名列名还可以确保

【pandas小技巧】--日期相关处理

日期处理相关内容之前`pandas基础`系列中有一篇专门介绍过,本篇补充两个常用的技巧。 # 1. 多列合并为日期 当收集来的数据中,年月日等信息分散在多个列时,往往需要先合并成日期类型,然后才能做分析处理。合并多列转换为日期类型,可以直接用 `to_datetime`函数来处理: ```pytho

【pandas小技巧】--数据转置

所谓**数据转置**,就是是将原始数据表格沿着对角线翻折,使原来的行变成新的列,原来的列变成新的行,从而更方便地进行数据分析和处理。 `pandas`中`DataFrame`的转置非常简单,每个`DataFrame`对象都有一个`T`属性,通过这个属性就能得到转置之后的`DataFrame`。下面介

【pandas小技巧】--统计值作为新列

这次介绍的小技巧不是统计,而是把统计结果作为**新列**和原来的数据放在一起。`pandas`的各种统计功能之前已经介绍了不少,但是每次都是统计结果归统计结果,原始数据归原始数据,没有把它们合并在一个数据集中来观察。 下面通过两个场景示例来演示如果把统计值作为新列的数据。 # 1. 成绩统计的场景

【pandas小技巧】--category类型补充

`category`类型在**pandas基础**系列中有一篇介绍数据类型的文章中已经介绍过。`category`类型并不是`python`中的类型,是`pandas`特有的类型。 `category`类型的优势那篇文章已经介绍过,当时只是介绍了如何将某个列的数据转换成`category`类型,以及

【pandas小技巧】--DataFrame的显示参数

我们在`jupyter notebook`中使用`pandas`显示`DataFrame`的数据时,由于屏幕大小,或者数据量大小的原因,常常会觉得显示出来的表格不是特别符合预期。 这时,就需要调整`pandas`显示`DataFrame`的方式。`pandas`为我们提供了很多调整显示方式的参数,具

【pandas小技巧】--DataFrame的显示样式

上一篇介绍了`DataFrame`的显示参数,主要是对`DataFrame`中值进行调整。 本篇介绍`DataFrame`的显示样式的调整,显示样式主要是对表格本身的调整,比如颜色,通过颜色可以突出显示重要的值,观察数据时可以更加高效的获取主要信息。 下面介绍一些针对单个数据和批量数据的样式调整方式

【pandas小技巧】--花哨的DataFrame

最近github上发现了一个库(`plottable`),可以用简单的方式就设置出花哨的 `DataFrame` 样式。 github上的地址:[https://github.com/znstrider/plottable](https://github.com/znstrider/plottabl

【pandas小技巧】--目录(完结)

`pandas`小技巧系列是介绍的是使用`pandas`分析数据时,最常用的一些操作技巧。 具体包括: 1. [创建测试数据](https://www.cnblogs.com/wang_yb/p/17552748.html) 学习pandas的过程中,为了尝试pandas提供的各类功能强大的函数,常

【pandas小技巧】--创建测试数据

学习`pandas`的过程中,为了尝试`pandas`提供的各类功能强大的函数,常常需要花费很多时间去创造测试数据。 在`pandas`中,快速创建测试数据可以更快的评估 `pandas` 函数。通过生成一组测试数据,可以评估例如 `read_csv`、`read_excel`、`groupby`等