J'ai le code suivant qui importe un fichier CSV. Il y a 3 colonnes et je veux définir les deux premières d'entre elles sur des variables. Lorsque je règle la deuxième colonne sur la variable «efficacité», la colonne d'index est également collé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 article mais qui aboutit à "KeyError: 'index'"
index.name = None
.Lors de la lecture vers et depuis votre fichier CSV, incluez l'argument
index=False
, par exemple:et lire depuis le csv
Cela devrait éviter le problème afin que vous n'ayez pas besoin de le résoudre plus tard.
la source
index_col=False
.df.to_sql("table",cursor,if_exists="append",index=False)
corrige également l'erreur sqlitesqlite3.OperationalError: table message has no column named index
index=False
pourto_excel()
etindex_col=False
avecread_csv()
dans les pandas 0.23.4. : - /df.reset_index(drop=True, inplace=True)
la source
drop
: "N'essayez pas d'insérer l'index dans les colonnes de dataframe. Cela réinitialise l'index à l'index entier par défaut." pandas.pydata.org/pandas-docs/stable/generated/…inplace=True
.Vous pouvez définir l'une des colonnes comme index au cas où il s'agirait d'un "id" par exemple. Dans ce cas, la colonne d'index sera remplacée par l'une des colonnes que vous avez choisies.
la source
Si votre problème est le même que le mien, vous souhaitez simplement réinitialiser les en-têtes de colonne de 0 à la taille de la colonne. Faire
ÉDITER:
Ce n'est pas une bonne idée si vous avez des types de données hétérogènes. Mieux vaut simplement utiliser
la source
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 votre problème, veuillez fournir un exemple de vos données
la source
Une chose que je fais est
df=df.reset_index()
alorsdf=df.drop(['index'],axis=1)
la source
df.reset_index().drop(columns=['yourfirstindex', 'yoursecondindex'])
cela fonctionne avec 'index' uniquement dans le cas standard où l'index n'a pas de nom et devient alors une colonne appelée 'index' avecdf.reset_index().drop(columns=['index'])
. Le paramètre ajoutéaxis=1
est la valeur par défaut. Cette méthode n'est pas recommandée, @ SubhojitMukherjeereset_index(inplace=True)
fonctionne "en place" et économise ainsi de la mémoire.