Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我无法将列名添加到数据框中?_Python_Python 2.7_Pandas_Dataframe - Fatal编程技术网

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))