2016-06-22 18 views
4

Ich habe ein Pandas Datenrahmen wie folgt aus:Set Indexnamen der Pandas Dataframe

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

Die erste Spalte keinen Header hat, und ich möchte ihm den Namen geben: ‚Zutat‘.

hat ich den Datenrahmen aus einer CSV-Datei:

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 

Wie ordne ich den Namen ‚Zutat‘ in der ersten Spalte, die derzeit keinen Namen hat?

ich schon versucht:

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

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

Wie verhindere ich, dass dies geschieht?

''  count 
ingredient '' 
sugar  420 
milk  108 
vanilla 450 
... 

Antwort

7

wenn Zutaten ist der Name des Index dann können Sie es durch

df.index.name='ingredient' 

Mit den aktuellen Lösungen Sie ‚Zutat‘ als Name des Index aufweisen, die in anderen Zeile gedruckt wird das der Spaltennamen. Dies kann nicht geändert werden wie es ist. Probieren Sie die modifizierte Lösung aus, hier wird der Index in eine neue Spalte mit dem Spaltennamen kopiert und der Index durch die Zahlenfolge ersetzt.

df['ingredient']=df.index 
df = df.reset_index(drop=True) 
+0

Du bist ein Genie, vielen Dank! – Papie

1

Try this:

cols_ = df.columns 
cols[0] = 'ingredient' 
df.columns = cols_ 
+0

Dmitry danke für deine Antwort! Weißt du, wie ich die Zeilen aus meinem Datenrahmen mit einer Anzahl kleiner als 5 entfernen kann? – Papie

+0

das wäre df [df.count> 5] –

+0

Vielen Dank :) – Papie