我正在尝试将'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
答案 0 :(得分:6)
我相信0
为integer
,因此将'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