发布于 4年前

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)
©2020 edoou.com   京ICP备16001874号-3