pythonpandasdataframemulti-index

How to simply add a column level to a pandas dataframe


let's say I have a dataframe that looks like this:

df = pd.DataFrame({'A': range(5), 'B': range(5)}, index=list('abcde'))
 df
Out[92]: 
   A  B
a  0  0
b  1  1
c  2  2
d  3  3
e  4  4

Asumming that this dataframe already exist, how can I simply add a level 'C' to the column index so I get this:

 df
Out[92]: 
   A  B
   C  C
a  0  0
b  1  1
c  2  2
d  3  3
e  4  4

I saw SO anwser like this python/pandas: how to combine two dataframes into one with hierarchical column index? but this concat different dataframe instead of adding a column level to an already existing dataframe.


Solution

  • As suggested by @StevenG himself, a better answer:

    df.columns = pd.MultiIndex.from_product(df.columns.levels + [['C']])
    
    print(df)
    #    A  B
    #    C  C
    # a  0  0
    # b  1  1
    # c  2  2
    # d  3  3
    # e  4  4