if ingredients is the name of the index then you can set it by
df.index.name="ingredient"
With the current solutions you have ‘ingredient’ as name of the index, which is printed in different row to that of column names. This cannot be changed as is. Try the modified solution below, here the index is copied on to a new column with column name and the index replaced with sequence of numbers.
df['ingredient']=df.index
df = df.reset_index(drop=True)