Search code examples
pythonpandasnumpydataframemulti-index

Get specific index from MultiIndex of Pandas data frame as list


I want to to get a specific index of a Pandas data frame with a MultiIndex as a list.

Given the example

import pandas as pd; import numpy as np
np.random.seed(42)
df = pd.DataFrame(np.random.randint(5, size=(5, 4)), columns=list('ABCD'))
df.set_index(['A', 'B'], inplace=True)

in which df is defined as

     C  D
A B
3 4  2  4
4 1  2  2
2 4  3  2
4 1  3  1
3 4  0  3

I want to extract

[4 1 4 1 4]

which corresponds to the second index B. How can this be done?


Solution

  • Using get_level_values

    df.index.get_level_values(level=1).tolist()
    Out[1040]: [4, 1, 4, 1, 4]
    

    Or reset_index

    df.reset_index(level=1).B.tolist()
    Out[1041]: [4, 1, 4, 1, 4]