web-dev-qa-db-fra.com

Comment éviter que Python / Pandas ne crée un index dans un csv enregistré?

J'essaye d'enregistrer un csv dans un dossier après avoir apporté quelques modifications au fichier.

Chaque fois que j'utilise pd.to_csv('C:/Path of file.csv'), le fichier csv contient une colonne d'index séparée. Je veux éviter d'imprimer l'index au format CSV.

J'ai essayé:

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

Et pour sauvegarder le fichier ...

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

Cependant, j'ai toujours la colonne d'index indésirable. Comment puis-je éviter cela lorsque je sauvegarde mes fichiers?

322
Alexis

Utilisez index=False.

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

Il existe deux manières de gérer la situation dans laquelle nous ne voulons pas que l'index soit stocké dans un fichier csv.

  1. Comme d’autres l’ont déjà dit, vous pouvez utiliser index = False tout en sauvegardant votre
    dataframe au fichier csv.

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

  2. Ou vous pouvez enregistrer votre structure de données telle quelle avec un index et, en lisant, il vous suffit de supprimer la colonne non nommé contenant votre index précédent. Simple!

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

74
blitu12345

Comme d'autres l'ont déjà indiqué, si vous ne souhaitez pas enregistrer la colonne d'index, vous pouvez utiliser df.to_csv('processed.csv', index=False)

Cependant, étant donné que les données que vous utiliserez habituellement ont une sorte d’index, par exemple une colonne "timestamp", je conserverais cet index et chargerais les données à l’aide de cet index.

Par conséquent, pour enregistrer les données indexées, commencez par définir leur index, puis enregistrez le DataFrame:

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

Ensuite, vous pouvez soit lire les données avec l’index:

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

ou lisez les données, puis définissez l'index:

pd.read_csv('filename.csv')
pd.set_index('column_name')
19
Lucas P.

Une autre solution si vous souhaitez conserver cette colonne en tant qu'index.

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

Si vous voulez un bon format, la déclaration suivante est la meilleure:

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

Dans ce cas, vous avez un fichier csv avec ',' séparé entre les colonnes et le format utf-8. De plus, l'index numérique n'apparaîtra pas.

6
Iván Rodríguez

Si vous ne voulez pas d'index, lisez le fichier en utilisant:

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

enregistrez-le en utilisant

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