我在Pandas中使用带列名的DataFrame,我需要编辑以替换或者说重命名原来的列名(标签)。
示例如下:我想更改DataFrame A中的列名,其中原始列名是:
['$a', '$b', '$c', '$d', '$e']
想改为
['a', 'b', 'c', 'd', 'e'].
我将编辑过的列名存储在列表中,但不知道如何替换列名。
最佳解决方案
只需将其分配给.columns属性即可,如下:
>>> df = pd.DataFrame({'$a':[1,2], '$b': [10,20]})
>>> df.columns = ['a', 'b']
>>> df
a b
0 1 10
1 2 20
次佳解决方案
使用df.rename()函数并引用要重命名的列。并非所有列都必须重命名,可以修改一部分列:
df = df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'})
# Or rename the existing DataFrame (rather than creating a copy)
df.rename(columns={'oldName1': 'newName1', 'oldName2': 'newName2'}, inplace=True)
第三种解决方案
rename方法可以采用一个函数替代,例如:
In [11]: df.columns
Out[11]: Index([u'$a', u'$b', u'$c', u'$d', u'$e'], dtype=object)
In [12]: df.rename(columns=lambda x: x[1:], inplace=True)
In [13]: df.columns
Out[13]: Index([u'a', u'b', u'c', u'd', u'e'], dtype=object)
第四种方案
既然你只想删除所有列名中的$符号,你可以这样做:
df = df.rename(columns=lambda x: x.replace('$', ''))
要么
df.rename(columns=lambda x: x.replace('$', ''), inplace=True)
第五种方案
df.columns = df.columns.str.replace('$','&#