gpt4 book ai didi

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

转载 作者:我是一只小鸟 更新时间:2023-07-31 22:31:52 28 4
gpt4 key购买 nike

重命名 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

                        
                      

image.png

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

                        
                      

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小技巧】--修改列的名称的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com