我有以下代码导入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'”
答案 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 将使您的属性成为标题,您可以稍后使用它来调用列。