Python 2.7 基于另一个数据帧重命名列

Python 2.7 基于另一个数据帧重命名列,python-2.7,pandas,Python 2.7,Pandas,我有一个DataFrame dataframe1,列为['a','B','C','D'] 我有另一个DataFrame dataframe2,如下所示: Old_Names New_Names A 1st B 2nd C 3rd D 4th 如何使用dataframe2将dataframe1中的列名更改为['1st','2nd','3rd','4th']?您可以使用以下功能: dataframe1.rename(columns=dataframe2.set_index(

我有一个DataFrame dataframe1,列为['a','B','C','D']

我有另一个DataFrame dataframe2,如下所示:

Old_Names New_Names
A    1st
B    2nd
C    3rd
D    4th
如何使用dataframe2将dataframe1中的列名更改为['1st','2nd','3rd','4th']?

您可以使用以下功能:

dataframe1.rename(columns=dataframe2.set_index('Old_Names')['New_Names'], inplace=True)

columns参数可以是dict-like或函数,在本例中,使用表示名称映射的序列。

您可以使用列表理解来完成此操作

dataframe1 = [item for item in dataframe2]

现在,您的dataframe1将包含dataframe2的内容,您可以使用列表重命名列,因此创建新的\u name列的列表将起作用

>>> dataframe1.columns = list(dataframe2['New_Names'])
>>> print(list(dataframe1.columns)) #To intuitively show the columns are renamed
['1st', '2nd', '3rd', '4th']

您只需使用dataframe1.columns即可:

dataframe1.columns=dataframe2.columns.values