从多索引数据帧中获取一个索引
Posted
技术标签:
【中文标题】从多索引数据帧中获取一个索引【英文标题】:Get one index from multiindexed dataframe 【发布时间】:2019-01-02 11:59:01 【问题描述】:如果我有一个多索引数据框,我如何才能仅在其中一个索引中获取信息?
如果我的 df 是这样的:
first second
bar one 0.469112
two -0.282863
baz one -1.509059
two -1.135632
foo one 1.212112
two -0.173215
qux one 0.119209
two -1.044236
我想要索引first
中的值列表。我习惯做这样的事情:
df.index.tolist()
返回:
['bar','baz','foo','qux']
【问题讨论】:
@akashkarothiya 输出返回列表 【参考方案1】:来自 jpp 的数据
df.index.levels[0]
Out[412]: Index(['A', 'X'], dtype='object', name='idx1')
更新:
[x[0] for x in df.index.tolist()]
Out[417]: ['A', 'A', 'X', 'X']
【讨论】:
注意可以在末尾添加tolistdf.index.levels[0].tolist()
【参考方案2】:
您可以使用pd.Index.get_level_values
。这是一个演示:
df = pd.DataFrame([['A', 'B', 1], ['A', 'C', 2], ['X', 'Y', 3], ['X', 'Z', '4']],
columns=['idx1', 'idx2', 'value'])
df = df.set_index(['idx1', 'idx2'])
res = df.index.get_level_values(0).tolist()
['A', 'A', 'X', 'X']
【讨论】:
也许我忽略了这个问题,好像他需要关卡,对吗? @Wen,嗯,实际上你可能是。我们会看到.. 我读到他想要df.index.tolist()
的等价物,但只是一个级别。
是的,这正是我想要的。相当于df.index.tolist()
。以上是关于从多索引数据帧中获取一个索引的主要内容,如果未能解决你的问题,请参考以下文章
使用索引值列表对 pandas 多索引数据框进行切片 [重复]