问题:读取csv时删除熊猫中的索引列
我有以下代码导入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
DataFrame和Series始终具有索引。尽管它显示在列旁边,但它不是列,这就是为什么它del df['index']
不起作用的原因。
如果要用简单的序号替换索引,请使用df.reset_index()
。
要了解为什么存在索引以及如何使用该索引,请参阅距熊猫10分钟的信息。
回答 1
在读取和读取CSV文件时,请包含参数index=False
,例如:
df.to_csv(filename, index=False)
并从CSV读取
df.read_csv(filename, index=False)
这样可以防止出现此问题,因此您以后无需修复它。
回答 2
df.reset_index(drop=True, inplace=True)
回答 3
您可以将其中一列设置为索引,以防万一它是“ id”。在这种情况下,索引列将替换为您选择的列之一。
df.set_index('id', inplace=True)
回答 4
如果您的问题与我的问题相同,则只想将列标题从0重置为列大小。做
df = pd.DataFrame(df.values);
编辑:
如果您具有异构数据类型,则不是一个好主意。更好地使用
df.columns = range(len(df.columns))
回答 5
您可以使用from_csv函数的index_col参数在csv文件中指定哪一列是索引,如果这样做不能解决问题,请提供数据示例
回答 6
一两件事,我做的是df=df.reset_index()
那么df=df.drop(['index'],axis=1)
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。