如何避免Python / Pandas在保存的csv中创建索引?


407

对文件进行一些编辑后,我试图将csv保存到文件夹。

每次我使用pd.to_csv('C:/Path of file.csv')csv文件时,都有单独的索引列。我想避免将索引打印到csv。

我试过了:

pd.read_csv('C:/Path to file to edit.csv', index_col = False)

并保存文件...

pd.to_csv('C:/Path to save edited file.csv', index_col = False)

但是,我仍然得到不需要的索引列。保存文件时如何避免这种情况?


59
尝试index=False代替index_col
Jeff

我们也可以在ms excel中使用它吗?
纳比·易卜拉欣·巴瓦齐尔

是的你可以pd.to_excel(r'file.xlsx', index = False)
bfree67 '19

index_col适用于read_html()为好。
卡拉

Answers:


605

使用index=False

df.to_csv('your.csv', index=False)

令人尴尬的简单解决方案,让我感到羞愧的是在6年后到达。
peluzza

89

有两种方法可以处理我们不希望将索引存储在csv文件中的情况。

  1. 正如其他人所述,将 数据框保存到csv文件时可以使用index = False

    df.to_csv('file_name.csv',index=False)

  2. 或者,您可以使用索引保存数据框,在读取时只需删除未命名的包含先前索引的0列即可!简单!

    df.to_csv(' file_name.csv ')
    df_new = pd.read_csv('file_name.csv').drop(['unnamed 0'],axis=1)


1
“并且在读取时,只删除了包含先前索引的未命名0列”,这是一种更好的方法,请指定pd.read_csv(..., index_col=[0],并避免额外的“ drop”调用。
cs95

30

如果不需要索引,请使用以下命令读取文件:

import pandas as pd
df = pd.read_csv('file.csv', index_col=0)

使用保存

df.to_csv('file.csv', index=False)

2
我不敢相信没有人注意到错误。要保存到csv,它将是df.to_csv('file.csv', index=False)
MEdwin,

1
大声笑没有人注意。谢谢。
amalik2205 '19

22

正如其他人所说,如果您不想首先保存索引列,则可以使用 df.to_csv('processed.csv', index=False)

但是,由于您通常使用的数据本身具有某种索引,因此我们假设使用“时间戳”列,因此我将保留索引并使用该索引加载数据。

因此,要保存索引数据,请首先设置其索引,然后保存DataFrame:

df.set_index('timestamp')
df.to_csv('processed.csv')

之后,您可以读取带有索引的数据:

pd.read_csv('processed.csv', index_col='timestamp')

或读取数据,然后设置索引:

pd.read_csv('filename.csv')
pd.set_index('column_name')

如果我设置index_col然后保存,则csv中仍然有一个数字未命名列。(Python2)
嘲笑

14

如果要将此列保留为索引,则可以采用另一种解决方案。

pd.read_csv('filename.csv', index_col='Unnamed: 0')

1
正是我想要的,谢谢。即使使用csv,这也有助于透明地转换主键的概念
Tobbey '18

7

如果您想要一个好的格式,那么下一条语句是最好的:

dataframe_prediction.to_csv('filename.csv', sep=',', encoding='utf-8', index=False)

在这种情况下,您将获得一个带有','的csv文件,该文件在各列和utf-8格式之间分开。另外,数字索引不会出现。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.