ChatGPT解决这个技术问题 Extra ChatGPT

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

在对文件进行一些编辑后,我试图将 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)

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

我们也可以在 ms excel 中使用它吗?
是的,您可以pd.to_excel(r'file.xlsx', index = False)
index_col 也适用于 read_html()

a
ayhan

使用 index=False

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

b
blitu12345

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

正如其他人所说,您可以在将数据框保存到 csv 文件时使用 index=False 。 df.to_csv('file_name.csv',index=False) 或者您可以使用索引保存数据框,在阅读时只需删除包含先前索引的未命名 0 列。简单! df.to_csv('file_name.csv') df_new = pd.read_csv('file_name.csv').drop(['unnamed 0'],axis=1)


“在阅读时,您只需删除包含先前索引的未命名 0 列”,更好的方法是指定 pd.read_csv(..., index_col=[0],并避免额外的“删除”调用。
a
amalik2205

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

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

保存使用

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

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

正如其他人所说,如果您不想首先保存索引列,您可以使用 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)
k
khaled Fouda

如果您想将此列保留为索引,则另一种解决方案。

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

正是我要找的,谢谢。即使在使用 csv 时,这也有助于透明地翻译主键的概念
好主意!!!我试过了,这是非常优雅的解决方案!!!
I
Iván Rodríguez

如果你想要一个好的格式,下一个语句是最好的:

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

在这种情况下,您有一个带有“,”的 csv 文件,在列和 utf-8 格式之间是分开的。此外,不会出现数字索引。