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

Bog*_*ski 95 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
Run Code Online (Sandbox Code Playgroud)

我试过用

del df['index']
Run Code Online (Sandbox Code Playgroud)

在我设定之后

energy = df.index
Run Code Online (Sandbox Code Playgroud)

我在另一篇文章中找到但导致"KeyError:'index'"

Ste*_*eve 195

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

 df.to_csv(filename, index=False)
Run Code Online (Sandbox Code Playgroud)

并从csv读取

df.read_csv(filename, index=False)  
Run Code Online (Sandbox Code Playgroud)

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

  • 应该是`index_col = False`. (18认同)
  • 非常感谢.这正是我们正在寻找的问题. (6认同)
  • 使用 `df.to_sql("table",cursor,if_exists="append",index=False)` 还修复了 sqlite 错误 `sqlite3.OperationalError: table message has no column named index` (4认同)
  • @vedda 在pandas 0.23.4 中,对于`to_excel()` 和`index_col=False` 似乎是`index=False` 和`read_csv()`。:-/ (3认同)
  • "header = False" 以相同的方式用于删除标题 (2认同)

Dan*_*lan 58

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

如果要使用简单的序列号替换索引,请使用df.reset_index().我强烈建议阅读一些pandas文档,比如Pandas的10分钟,以了解为什么索引是如何使用的.

  • 是的,`index.name = None`. (3认同)
  • 您是否尝试过使用熊猫做算术? (2认同)
  • 可以删除索引名称吗? (2认同)
  • 是的,显然下一个答案应该是被接受的答案。 (2认同)

小智 52

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

  • 这实际上是我最喜欢的解决方案,但不是一个非常详尽的答案。手册阅读了关于参数`drop`的内容:“不要尝试将索引插入数据帧列。这会将索引重置为默认的整数索引。” https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.reset_index.html (3认同)

Nat*_*bsi 10

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

df.set_index('id', inplace=True)
Run Code Online (Sandbox Code Playgroud)


Bha*_*ngh 5

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

df = pd.DataFrame(df.values);
Run Code Online (Sandbox Code Playgroud)

编辑:

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

df.columns = range(len(df.columns))
Run Code Online (Sandbox Code Playgroud)