在 Pandas 中,可以通过索引来对数据框的列进行重命名,其一般的语法是``df.rename(columns={old_name1:new_name1,old_name2:new_name2,...}})
。具体步骤如下:
- 创建一个Pandas数据框并命名其列名:
“`python
import pandas as pd
df = pd.DataFrame({‘A’:[1,2,3],’B’:[4,5,6]})
df.columns = [‘C1′,’C2’]
print(df)
“`
输出:
C1 C2
0 1 4
1 2 5
2 3 6
- 使用
rename()
函数重命名列:
python
df = df.rename(columns={'C1':'New_C1','C2':'New_C2'})
print(df)
输出:
New_C1 New_C2
0 1 4
1 2 5
2 3 6
在rename()
函数中,使用一个字典对列名进行映射,字典的key为旧列名,value为新列名。
注意:在使用rename()
函数时,需要注意参数inplace
的设置。当inplace=True
时,原数据框中列名将被直接修改,否则将只是返回修改后的数据框,原数据框中列名并未变化。
例如,下面的代码修改列名后,直接在原数据框中进行修改:
df.rename(columns={'C1':'New_C1','C2':'New_C2'}, inplace=True)
在许多情况下,只需要重命名部分列名,可以使用正则表达式来匹配需要重命名的列名。
例如:在网站日志记录中,有许多类似“page_1”、“page_2”的列名,我们可以通过正则表达式'^page_'
来选取所有以“page_”开头的列名,并将其统一重命名为“page”。
以下是选取并重命名匹配到的列的例子:
df = pd.DataFrame({'page_1':[1,2,3],'page_2':[4,5,6],'col_1':[7,8,9]})
print(df)
df = df.rename(columns=lambda x: x.replace('page', 'new_page') if x.startswith('page') else x)
print(df)
输出结果为:
page_1 page_2 col_1
0 1 4 7
1 2 5 8
2 3 6 9
new_page_1 new_page_2 col_1
0 1 4 7
1 2 5 8
2 3 6 9