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

我有下面的代码,导入一个 CSV 文件。有三列,我想把前两列设置为变量。当我将第二列设置为变量“效率”时,索引列也会被添加。如何去掉索引列?

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

我在另一篇文章中找到的,但结果是“ KeyError: ‘ index’”

777432 次浏览

可以使用 from _ csv 函数的 index _ col 参数指定 csv 文件中的索引列 如果这不能解决你的问题,请提供你的数据的例子

DataFrames 系列总是有一个索引。虽然它显示在列旁边,但它不是一个列,这就是为什么 del df['index']不工作。

如果要用简单的顺序数字替换索引,请使用 df.reset_index()

要了解索引的存在原因和使用方法,请参见 还有10分钟就到熊猫餐厅了

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

df = pd.DataFrame(df.values);

编辑:

如果您使用的是异构数据类型,那么这不是一个好主意

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

当写入和读取 CSV 文件时,分别包括参数 index=Falseindex_col=False:

写作:

 df.to_csv(filename, index=False)

还要读取 CSV 的数据

df.read_csv(filename, index_col=False)

这应该可以防止这个问题,所以您不需要在以后修复它。

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

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

df.reset_index(drop=True, inplace=True)

我做的一件事就是 df=df.reset_index() 然后是 df=df.drop(['index'],axis=1)

要删除或不创建默认的索引列,可以将 index _ coll 设置为 False,并将标头保持为 Zero。这里有一个例子说明如何做到这一点。

recording = pd.read_excel("file.xls",
sheet_name= "sheet1",
header= 0,
index_col= False)

Header = 0将使您的属性成为 header,您可以稍后使用它来调用列。

对我来说是这样的:

Df = data.set _ index (“以索引列开始的列标题的名称”)