读取csv时删除pandas中的索引列

时间:2013-11-20 21:38:13

标签: python pandas

我有以下代码导入CSV文件。有3列,我想将前两个设置为变量。当我将第二列设置为变量“效率”时,索引列也会被添加。如何摆脱索引列?

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'”

8 个答案:

答案 0 :(得分:159)

当您在CSV文件中读取和包含参数index=False时,例如:

 df.to_csv(filename, index=False)

并从csv中读取

df.read_csv(filename, index=False)  

这样可以防止出现此问题,因此您以后无需进行修复。

答案 1 :(得分:49)

DataFrames Series 始终具有索引。虽然它显示在列的旁边,但它不是列,这就是del df['index']不起作用的原因。

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

要了解索引存在的原因以及索引的使用方法,请参阅例如10 minutes to Pandas

答案 2 :(得分:41)

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

答案 3 :(得分:9)

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

// update: set widht and height of clippath rect
plotArea.append("clipPath")
    .attr("id", "plotAreaClip")
    .append("rect")
    .attr('width', width)
    .attr('height', height);
    //.attr({width: width, height: height});

答案 4 :(得分:3)

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

drawRect

编辑:

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

df = pd.DataFrame(df.values);

答案 5 :(得分:2)

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

要删除或不创建默认索引列,您可以将 index_col 设置为 False 并将标题保留为零。以下是您如何做到这一点的示例。

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

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