Python 将列值(和类型)更改为数据帧

Python 将列值(和类型)更改为数据帧,python,pandas,Python,Pandas,我正在尝试重命名pandas dataframes中的列,但是不同的dataframes具有不同类型的列,我需要帮助。一个简单的例子将向您阐明我的问题 import pandas as pd dic1 = {'a': [4, 1, 3, 1], 'b': [4, 2, 1, 4], 'c': [5, 7, 9, 1]} dic2 = {1: [4, 1, 3, 1], 2: [4, 2, 1, 4], 3: [5, 7, 9, 1]} df1 = pd.DataFrame(dic1) df2

我正在尝试重命名pandas dataframes中的列,但是不同的dataframes具有不同类型的列,我需要帮助。一个简单的例子将向您阐明我的问题

import pandas as pd
dic1 = {'a': [4, 1, 3, 1], 'b': [4, 2, 1, 4], 'c': [5, 7, 9, 1]}
dic2 = {1: [4, 1, 3, 1], 2: [4, 2, 1, 4], 3: [5, 7, 9, 1]}

df1 = pd.DataFrame(dic1)
df2 = pd.DataFrame(dic2)
现在如果我打字

df1.columns.values[-1] = 'newName'
df2.columns.values[-1] = 'newName'
我可以很容易地更改第一个数据帧的最后一个列名,但是如果我键入

df1.columns.values[-1] = 'newName'
df2.columns.values[-1] = 'newName'

我从Python收到一条错误消息,因为第二个数据帧中的列的类型不同。有没有办法更改这些列的类型和/或让Python以某种方式理解,即使是df2的最后一列也必须命名为“newName”?

这不是重命名列的常规方法,您应该使用以下方法:

In [95]:
df2.rename(columns={df2.columns[-1]:'newName'}, inplace=True)
df2

Out[95]:
   1  2  newName
0  4  4        5
1  1  2        7
2  3  1        9
3  1  4        1