更改pandas DataFrame中的特定列名称
我正在寻找一个优雅的方式来更改DataFrame指定的列名称。 
播放数据…
 import pandas as pd d = { 'one': [1, 2, 3, 4, 5], 'two': [9, 8, 7, 6, 5], 'three': ['a', 'b', 'c', 'd', 'e'] } df = pd.DataFrame(d) 
迄今为止我find的最优雅的解决scheme…
 names = df.columns.tolist() names[names.index('two')] = 'new_name' df.columns = names 
我希望能有一个简单的单线……这个尝试失败了…
 df.columns[df.columns.tolist().index('one')] = 'another_name' 
任何提示,感激地收到。
一个class轮确实存在:
 In [27]: df=df.rename(columns = {'two':'new_name'}) In [28]: df Out[28]: one three new_name 0 1 a 9 1 2 b 8 2 3 c 7 3 4 d 6 4 5 e 5 
 以下是rename方法的文档string。 
定义:df.rename(self,index = None,columns = None,copy = True,inplace = False)
文档string:
使用input函数或者改变索引和/或列
function。 函数/字典值必须是唯一的(1对1)。 标签不是
包含在一个字典/系列将保持原样。
参数
 ----------
索引:字典或函数,可选
    将转换应用于索引值
列:字典或函数,可选
    应用于列值的转换
复制:布尔值,默认为True
    也复制底层数据
 inplace:布尔值,默认为False
    是否返回一个新的DataFrame。 如果为True,则复制值为
    忽略。
也可以看看
 --------
 Series.rename
返回
 -------
改名为:DataFrame(新对象)
 由于inplace参数可用,因此不需要复制原始dataframe并将其分配给自身,但按如下所述进行操作: 
 df.rename(columns={'two':'new_name'}, inplace=True) 
关于什么?
 df.columns.values[2] = "new_name" 
pandas0.21现在有一个轴参数
重命名方法已经获得了一个轴参数来匹配大部分pandasAPI的其余部分。
所以,除此之外:
 df.rename(columns = {'two':'new_name'}) 
你可以做:
 df.rename({'two':'new_name'}, axis=1) 
要么
 df.rename({'two':'new_name'}, axis='columns') 
 重命名这里的列是一个简单的Default(0,1,2,etc;)和现有的列,但没有太多有用的更大的数据集(有很多列)。 
对于更大的数据集,我们可以分割我们需要的列并应用下面的代码:
 df.columns = ['new_name','new_name1','old_name'] 
以下短代码可以帮助:
 df3 = df3.rename(columns={c: c.replace(' ', '') for c in df3.columns}) 
从列中删除空格。