Pandas dataframe重命名列名
Pandas重命名有三种方法:
1、使用columns重命名
>>> df = pd.DataFrame({'$a':[1,2], '$b': [10,20]})
>>> df.columns = ['a', 'b']
>>> df
a b
0 1 10
1 2 20
这种重命名方法是直接在原来的dataframe上修改。但需要对所有的列名重命名。
2、rename()方法
对指定列重命名可以使用rename()方法。默认是使用新的列名新建一个dataframe。
df = df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'})
如果要在原来的dataframe上修改列名,可以设置参数inplace为True。
df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'}, inplace=True)
也可以使用lambda批量修改:
df.rename(columns=lambda x: x[1:], inplace=True)
3、Pandas 0.21+
pandas0.21重命名方法做了更改:rename()和set_axis()方法。
rename()
rename(),新增了参数axis,它的值为可以columns或者1,当参数为columns或1时,用于修改列名:
df.rename({'$a':'a', '$b':'b', '$c':'c', '$d':'d', '$e':'e'}, axis='columns')
lambda:
df.rename(lambda x: x[1:], axis='columns')
set_axis
rename()是对指定列名做更改,set_axis则是可以重新设置列名,inplace参数用于标记是否在原来的dataframe修改列名:
df.set_axis(['a', 'b', 'c', 'd', 'e'], axis='columns', inplace=False)