我们在做merge的时候,如果两个DataFrame中存在相同的列名,merge会自动给相同的列名加上后缀。然后,你对需要的数据进行切割。如果所需要的数据中列名还带着个后缀,是很不舒服的。这个时候,你会想重命名列名。这个是一种场景。在其他场景,你也许也想重命名列名的。总之,就是想重命名列名。

通过DataFrame的rename方法,可以实现列名的改变。也可以使用columns属性来操作(直接赋值的方式)。其实,当对个别列重命名,当然是rename最好了。

import pandas as pd

df = pd.DataFrame({
        'a_x':[1, 2, 3, 4],
        'b_y':[11, 12, 13, 14]
})

df.columns = ["a", "b"]
df.columns = df.columns.map(lambda x:x[0:1])

df.rename(columns={"a_x":"a", "b_y":"b"}, inplace=True)
df.rename(columns = lambda x: x[0:1], inplace=True)

print df
#输出
   a   b
0  1  11
1  2  12
2  3  13
3  4  14