我的目標爲什麼我無法將列名添加到數據框?
我想添加/替換列名,同時在數據幀的結束消除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
我的目標爲什麼我無法將列名添加到數據框?
我想添加/替換列名,同時在數據幀的結束消除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
df
是Series
,不DataFrame
。
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
一如既往的絕佳回答! ;-) 謝謝。 – LearningToPython
'df = pd.DataFrame({'cart':df})'與'.to_frame'方法有什麼不同? – lmo
@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
@ jezrael的答案是你的答案。我只是想從頭開始添加替代
在給出您的df
是pd.Series
pd.DataFrame(dict(Cart=df))
你的對象是一個系列,而不是一個數據幀。 – BrenBarn