2017-11-18 107 views
2

我試圖按照以下方式將'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

我相信0integer,所以更改'0'(字符串)0(號碼):

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

但更好的是使用的參數列DataFrame構造:

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

偉大它的作品,再次感謝Jezrael! –

+0

很高興能幫到你!愉快的週末! – jezrael

1

這裏是另一個通用的解決方案,它應該適用於兩個 - 作爲數字和列的列作爲nu的字符串表示mbers:

樣品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