我的目标为什么我无法将列名添加到数据框?
我想添加/替换列名,同时在数据帧的结束消除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