Python 读取csv时删除熊猫中的索引列

Python 读取csv时删除熊猫中的索引列,python,pandas,Python,Pandas,我有以下导入CSV文件的代码。共有3列,我想将前两列设置为变量。当我将第二列设置为变量“efficiency”时,索引列也会加上。如何删除索引列 df = pd.DataFrame.from_csv('Efficiency_Data.csv', header=0, parse_dates=False) energy = df.index efficiency = df.Efficiency print efficiency 我试着用 del df['index'] 在我设定之后 energy

我有以下导入CSV文件的代码。共有3列,我想将前两列设置为变量。当我将第二列设置为变量“efficiency”时,索引列也会加上。如何删除索引列

df = pd.DataFrame.from_csv('Efficiency_Data.csv', header=0, parse_dates=False)
energy = df.index
efficiency = df.Efficiency
print efficiency
我试着用

del df['index']
在我设定之后

energy = df.index

我在另一篇文章中发现了它,但结果是“keyrerror:'index'”

您可以使用from_csv函数的index_col参数指定哪个列是csv文件中的索引 如果这不能解决您的问题,请提供您的数据示例。

数据帧和序列始终具有索引。尽管它显示在列旁边,但它不是一列,这就是为什么
del df['index']
不起作用的原因

如果要用简单的序列号替换索引,请使用
df.reset\u index()


要了解索引存在的原因及其使用方式,请参见例如

如果您的问题与我的问题相同,您只想将列标题从0重置为列大小。做

df = pd.DataFrame(df.values);
编辑:

如果您有异构数据类型,这不是一个好主意。最好只是使用

df.columns = range(len(df.columns))

在读取CSV文件时,请包含参数
index=False
,例如:

 df.to_csv(filename, index=False)
以及从csv中读取

df.read_csv(filename, index=False)  

这可以防止问题发生,因此您以后不需要修复它。

您可以将其中一列设置为索引,例如,如果它是“id”。 在这种情况下,索引列将替换为您选择的列之一

df.set_index('id', inplace=True)

df.reset\u index(drop=True,inplace=True)
我做的一件事是
df=df.reset\u index()

然后
df=df.drop(['index'],axis=1)

谢谢!我决定用另一种方式导入它,不使用熊猫。我必须对每一列执行一些算术运算,python不喜欢附加索引列。Pandas无疑是导入数据最简单的方法,但并不总是我发现的最好的方法。您是否尝试过使用Pandas进行运算?是否可以删除索引名称?是的,
index.name=None
。是的,显然下一个答案应该是可接受的。非常感谢。这正是问题的目的。“header=False”以相同方式删除标题的工作应该是
index\u col=False
。使用
df.to\u sql(“table”,cursor,if_exists=“append”,index=False)
还修复了sqlite错误
sqlite3。操作错误:table消息没有名为index的列
@vedda对于
to\u excel()
index\u col=False
与0.23.4中的
read\u csv()-/这实际上是我最喜欢的解决方案,但不是一个非常详细的答案。手册阅读了关于参数drop的以下内容:“不要尝试将索引插入数据框列。这会将索引重置为默认整数索引。”@tommy.carstensen那么,如何避免将索引上的整数替换为以前的索引?我认为这是对你链接文本的误解。这里的问题是删除索引。这里就到了。您将获得默认的整数,因为没有没有没有索引的日期框,但是您已经删除了上一个索引。这就是为什么这个答案应该是可接受的答案,也是因为它使用了内存效率高的
inplace=True
。错误:“axis@vasinyury中不包含标签['index'],这意味着类似于
df.reset_index()。drop(columns=['yourfirstindex','yoursecondindex'])
,它仅在标准情况下使用“index”,即索引没有名称,然后通过
df.reset_index().drop(columns=['index'])变成名为“index”的列。
。添加的参数
axis=1
是默认值。不建议使用这种方法,@SubhojitMukherjee的
reset\u索引(inplace=True)
在“原地”工作,从而节省内存。