如何用pandas对列重命名

这是系列文章,我会按照stackoverflow上pandas相关问题投票数排序进行整理学习。不学习是会变咸鱼的~

原问题:renaming columns in pandas,根据问题描述,需要对已有的DataFrame的列重新命名,去掉前面的$符号。

1
2
3
import pandas as pd

df = pd.DataFrame([{'$a':1, '$b':2, '$c':3}])

方法一,不适用于有很多列的或者只修改个别列名的DataFrame

1
df.columns = ['a', 'b', 'c'] # 直接在原始数据上进行修改

方法二,rename方法适用于只修改个别列名或者列名有一定规律的DataFrame

1
2
3
4
5
6
7
df2=df.rename(columns={'$a':'a', '$b':'b'}) # 不修改原始数据
df.rename(columns={'$a':'a', '$b':'b'}, inplace=True) # 修改原始数据
df.rename({'$a':'a', '$b':'b'}, axis='columns', inplace=True) # pandas 0.21的新方法,指定axis='coloumns'或者1

# 列名有规律,方法可以有很多
df.rename(columns=lambda x: x[1:], inplace=True)
df.rename(columns=lambda x: x.lstrip('$'), inplace=Tru)

方法三,str方法

1
df.columns = df.columns.str.replace('$','')