web-dev-qa-db-fra.com

Suppression de la colonne d'index dans pandas lors de la lecture d'un csv

J'ai le code suivant qui importe un fichier CSV. Il y a 3 colonnes et je veux définir les deux premières comme variables. Lorsque je règle la deuxième colonne sur la variable "efficience", la colonne d'index est également ajoutée. Comment puis-je me débarrasser de la colonne d'index?

df = pd.DataFrame.from_csv('Efficiency_Data.csv', header=0, parse_dates=False)
energy = df.index
efficiency = df.Efficiency
print efficiency

J'ai essayé d'utiliser

del df['index']

après avoir mis

energy = df.index

que j'ai trouvé dans un autre post mais qui donne "KeyError: 'index'"

85
Bogdan Janiszewski

DataFrames et Les séries ont toujours un index. Bien qu'il s'affiche à côté des colonnes, il ne s'agit pas d'une colonne. C'est pourquoi del df['index'] ne fonctionnait pas.

Si vous souhaitez remplacer l'index par de simples numéros séquentiels, utilisez df.reset_index().

Pour savoir pourquoi l’indice existe et comment il est utilisé, voir par exemple. 10 minutes de Pandas .

56
Dan Allan

Lors de la lecture de et vers votre fichier CSV, incluez l'argument index=False ainsi, par exemple:

 df.to_csv(filename, index=False)

et lire du csv

df.read_csv(filename, index=False)  

Cela devrait empêcher le problème afin que vous n'ayez pas besoin de le réparer plus tard.

173
Steve

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

46

Vous pouvez définir l'une des colonnes comme un index dans le cas où il s'agisse d'un "id" par exemple. Dans ce cas, la colonne d'index sera remplacée par l'une des colonnes que vous avez choisies.

df.set_index('id', inplace=True)
9
Natheer Alabsi

Si votre problème est identique au mien, vous souhaitez simplement réinitialiser les en-têtes de colonne de 0 à la taille de la colonne. Faire

df = pd.DataFrame(df.values);

MODIFIER:

Pas une bonne idée si vous avez des types de données hétérogènes. Mieux vaut juste utiliser

df.columns = range(len(df.columns))
3
Bhanu Pratap Singh

vous pouvez spécifier quelle colonne est un index dans votre fichier csv en utilisant le paramètre index_col de la fonction from_csv. Si cela ne résout pas le problème, veuillez fournir un exemple de vos données.

2
yemu

Une chose que je fais est df=df.reset_index() puis df=df.drop(['index'],axis=1)

0
Lord Varis