web-dev-qa-db-fra.com

Définir le nom d'index des pandas DataFrame

J'ai un dataframe comme celui-ci: 

    ''     count
sugar      420
milk       108
Vanilla    450
...

La première colonne n'a pas d'en-tête et j'aimerais lui donner le nom: "ingrédient". 

J'ai créé le dataframe à partir d'un fichier csv: 

df = pd.read_csv('./data/file_name.csv', index_col=False, encoding="ISO-8859-1")  
df = df['ingredient_group']  #selecting column 
df = df.value_counts()       #calculating string occurance which return series obj
df = pd.DataFrame(df)        #creating dataframe from series obj

Comment attribuer le nom "ingrédient" à la première colonne qui n'a pas encore de nom? 

J'ai déjà essayé: 

df_count.rename(columns={'': 'ingredient'}, inplace=True)

df = pd.DataFrame(df, columns = ['ingredient','count']

Comment puis-je empêcher que cela se produise? 

''        count
ingredient  ''
sugar      420
milk       108
Vanilla    450
...
6
Afke

si ingrédients est le nom de l'index, vous pouvez le définir par

df.index.name='ingredient'

Avec les solutions actuelles, vous avez "ingrédient" comme nom de l'index, qui est imprimé dans une ligne différente de celle des noms de colonne. Cela ne peut pas être changé tel quel. Essayez la solution modifiée ci-dessous, ici l'index est copié dans une nouvelle colonne avec le nom de la colonne et l'index est remplacé par une séquence de nombres. 

df['ingredient']=df.index
df = df.reset_index(drop=True)
10
user3404344

Essaye ça:

cols_ = df.columns
cols[0] = 'ingredient'
df.columns = cols_
1
Dmitry Andreev