2017-01-01 87 views
2

我的目標爲什麼我無法將列名添加到數據框?

我想添加/替換列名,同時在數據幀的結束消除Name, dtype

數據幀

>>> df 

0 Cheese 
1 Bread 
2 Ham 
3 Egg 
Name: Column1, dtype: object 

我嘗試

我試圖做到以下幾點:

df.columns = ['Cart'] 

但輸出df時,會出現完全一樣的前手。

期望輸出

Cart 
0 Cheese 
1 Bread 
2 Ham 
3 Egg 
+1

你的對象是一個系列,而不是一個數據幀。 – BrenBarn

回答

3

dfSeries,不DataFrame

使用Series.to_frame

df.to_frame('Cart') 

或者:

df.rename('Cart').to_frame() 

df = pd.Series(['Cheese','Bread','Ham','Egg'], name='Column1') 
print (df) 
0 Cheese 
1  Bread 
2  Ham 
3  Egg 
Name: Column1, dtype: object 

print (type(df)) 
<class 'pandas.core.series.Series'> 

print (df.to_frame('Cart')) 
    Cart 
0 Cheese 
1 Bread 
2  Ham 
3  Egg 
+0

一如既往的絕佳回答! ;-) 謝謝。 – LearningToPython

+0

'df = pd.DataFrame({'cart':df})'與'.to_frame'方法有什麼不同? – lmo

+1

@Imo - 是的,這是另一種解決方案。我嘗試計時和一點點'to_frame'快:'DF = pd.concat([DF] * 100000).reset_index(降= TRUE)' - '在[139]:%timeit(df.to_frame('車')) 100個循環,最好的3:每個循環4.38 ms In [140]:%timeit(pd.DataFrame(dict(Cart = df))) 100個循環,最好的3:每循環4.52 ms – jezrael

2

@ jezrael的答案是你的答案。我只是想從頭開始添加替代

在給出您的dfpd.Series

pd.DataFrame(dict(Cart=df)) 
相關問題