Search code examples
pythondataframepandas

Add column to index without resetting


how do I add 'd' to the index below without having to reset it first?

from pandas import DataFrame

df = DataFrame({'a': range(6), 'b': range(6), 'c': range(6)})
df.set_index(['a','b'], inplace=True)
df['d'] = range(6)

# how do I set index to 'a b d' without having to reset it first?
df.reset_index(['a','b','d'], inplace=True)
df.set_index(['a','b','d'], inplace=True)

df

Solution

  • We added an append option to set_index. Try that.

    The command is:

    df.set_index(['d'], append=True)
    

    (we don't need to specify ['a', 'b'], as they already are in the index and we're appending to them)