无法重命名数据框

时间:2017-11-18 11:41:02

标签: pandas dataframe

我正在尝试将'0'重命名为'预测',如下所示 我收到没有错误,但是当我打印它时,它仍显示为'0'?

df2 = pd.DataFrame(data)
df2.rename(columns = {'0':'predicted'}, inplace=True)
print (df2.tail())

            0
248  0.335400
249  0.334992
250  0.334955
251  0.335716
252  0.335723

2 个答案:

答案 0 :(得分:6)

我相信0integer,因此将'0'(字符串)更改为0(数字):

df2.rename(columns = {0:'predicted'}, inplace=True)

但更好的是使用DataFrame构造函数中的参数列:

df2 = pd.DataFrame(data, columns=['predicted'])

答案 1 :(得分:1)

这是另一个通用解决方案,它应该适用于两个 - 列作为数字和列作为数字的字符串表示:

样本DF:

In [32]: df = pd.DataFrame(np.arange(15).reshape(-1,5), columns=[0,'1',2,'colX','colZ'])

In [33]: df
Out[33]:
    0   1   2  colX  colZ
0   0   1   2     3     4
1   5   6   7     8     9
2  10  11  12    13    14

In [34]: df.columns.tolist()
Out[34]: [0, '1', 2, 'colX', 'colZ']

映射:

In [29]: d = {'0':'col0','1':'col1','2':'col2'}

重命名:

In [35]: df = df.rename(columns=lambda col: d.get(str(col)) if str(col) in d else col)

In [36]: df
Out[36]:
   col0  col1  col2  colX  colZ
0     0     1     2     3     4
1     5     6     7     8     9
2    10    11    12    13    14