Python:如何以某种方式重命名多个数据帧中的一组列

2024-05-28 20:24:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有几个数据帧,每个数据帧都有多个列,其名称以相同的方式定义

以下是一个例子:

person_name birth_dt_1
Bob         1991-01-05 
Abby        1994-09-09
Elsa        1956-08-15

我想找到一种方法,在列名中用空格替换下划线,并使每个单词的第一个字母大写。对于列名中的数字,我们可以将其保留为这样

以下是我想要的:

Person Name Birth Dt 1
Bob         1991-01-05 
Abby        1994-09-09
Elsa        1956-08-15

我不想在pandas中使用rename函数,因为我必须指定每个列的名称,这可能太冗余了,因为我有多个数据帧,每个数据帧都有多个列

有没有关于如何有效地做这件事的建议?是否可以定义一个可应用于多个数据集的函数

提前谢谢


Tags: 数据方法函数name名称定义方式dt
2条回答

试试这个

df.columns = df.columns.str.title().str.replace('_', ' ')

Out[387]:
  Person Name  Birth Dt 1
0         Bob  1991-01-05
1        Abby  1994-09-09
2        Elsa  1956-08-15

您还可以利用python中的re

re.findall可用于获取潜在子字符串的列表,然后可用于与空格连接

例如:

import re

def rename_cols(name):
    return " ".join([i.capitalize() for i in re.findall('[a-z0-9]+', name)])

df_clean = df.rename(columns=rename_cols)

Out[1]:
    Person Name Birth Dt 1
0   Bob         1991-01-05
1   Abby        1994-09-09
2   Elsa        1956-08-15

相关问题 更多 >

    热门问题