How to convert index of a pandas dataframe into a column?

This seems rather obvious, but I can't seem to figure out how to convert an index of data frame to a column?

For example:

    df=
            gi       ptt_loc
     0  384444683      593  
     1  384444684      594 
     2  384444686      596

To,

    df=
        index1    gi       ptt_loc
     0  0     384444683      593  
     1  1     384444684      594 
     2  2     384444686      596

either:

    df['index1'] = df.index

or, .reset_index:

    df.reset_index(level=0, inplace=True)

so, if you have a multi-index frame with 3 levels of index, like:

    >>> df
                           val
    tick       tag obs        
    2016-02-26 C   2    0.0139
    2016-02-27 A   2    0.5577
    2016-02-28 C   6    0.0303

and you want to convert the 1st (tick) and 3rd (obs) levels in the index into columns, you would do:

    >>> df.reset_index(level=['tick', 'obs'])
              tick  obs     val
    tag                        
    C   2016-02-26    2  0.0139
    A   2016-02-27    2  0.5577
    C   2016-02-28    6  0.0303

From: stackoverflow.com/q/20461165