如何访问MultiIndex DataFrame中的索引值(最好是按名称)



假设我们有一个多索引数据帧,所说的数据帧看起来像这样:

0
source date  row          
Alpha  01-01 0    0.183436
1   -0.210341
Beta   02-01 0   -0.950784
1    0.259809

我该如何按照上面显示的顺序将唯一日期作为列表?即['01-01','02-01']

我知道我可以用df.loc['Alpha'].index[0][0]访问个人约会。这感觉不太像蟒蛇。我希望我能做一些类似df.loc['Alpha'].index['date']的事情,但这产生了IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices。这让我想知道:为什么一开始就麻烦命名索引呢?我是否错误地使用了MultiIndex DataFrame?

源代码以备有人尝试:df = pd.DataFrame(np.random.randn(4), index=pd.MultiIndex.from_tuples([('Alpha', '01-01', 0), ('Alpha', '01-01', 1), ('Beta', '02-01', 0), ('Beta', '02-01', 1)], names=['source', 'date', 'row']))

使用.index.get_level_values()

df.index.get_level_values("date").unique()
#or   
df.index.get_level_values(1).unique()

Index(['01-01', '02-01'], dtype='object', name='date')

最新更新