Python 为什么我无法将列名添加到数据框中?
我的目标 我想添加/替换列名,同时删除数据帧末尾的Python 为什么我无法将列名添加到数据框中?,python,python-2.7,pandas,dataframe,Python,Python 2.7,Pandas,Dataframe,我的目标 我想添加/替换列名,同时删除数据帧末尾的name,dtype 数据帧 我的尝试 我已尝试做以下工作: df.columns = ['Cart'] 但是当输出df时,它看起来与之前完全相同 预期产出 df是系列,而不是数据帧 使用: 或: df=pd.Series(['Cheese','Bread','Ham','Egg',name='Column1') 打印(df) 0奶酪 1面包 2火腿 3个鸡蛋 名称:Column1,数据类型:object 打印(类型(df)) 打印(df.至
name,dtype
数据帧
我的尝试
我已尝试做以下工作:
df.columns = ['Cart']
但是当输出df
时,它看起来与之前完全相同
预期产出
df
是系列
,而不是数据帧
使用:
或:
df=pd.Series(['Cheese','Bread','Ham','Egg',name='Column1')
打印(df)
0奶酪
1面包
2火腿
3个鸡蛋
名称:Column1,数据类型:object
打印(类型(df))
打印(df.至框架(“购物车”))
运货马车
0奶酪
1面包
2火腿
3个鸡蛋
@jezrael的答案就是你的答案。我只是想补充一些选择
如果您的df
是一个pd.Series
pd.DataFrame(dict(Cart=df))
您的对象是一个系列,而不是一个数据帧。答案总是很好!;-)谢谢。
df=pd.DataFrame({'cart':df})
与.to_frame
方法相比有什么缺点吗?@Imo-是的,这是另一种解决方案。我尝试计时,稍微到_帧
更快:df=pd.concat([df]*100000).重置_索引(drop=True)
-[139]中的:%timeit(df.to _帧('Cart'))100个循环,最好的是[140]中的3:4.38毫秒每个循环:%timeit(pd.DataFrame(dict(Cart=df))100个循环,最好的是3:4.52毫秒每个循环
@BenF97-谢谢。新年快乐我也祝你!;-)
Cart
0 Cheese
1 Bread
2 Ham
3 Egg
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
pd.DataFrame(dict(Cart=df))