gpt4 book ai didi

python - DataFrame 中出现的 MultiIndex 级别的组合

转载 作者:太空狗 更新时间:2023-10-30 00:44:16 24 4
gpt4 key购买 nike

我有一个像这样的 MultiIndexed DataFrame:

In [2]: ix = pd.MultiIndex.from_product([[1, 2, 3], ['foo', 'bar'], ['baz', 'can']], names=['a', 'b', 'c'])
In [3]: data = np.arange(len(ix))
In [4]: df = pd.DataFrame(data, index=ix, columns=['hi'])
In [43]: df = df[~df.hi.isin([2, 3])]
In [44]: df
Out[44]:
hi
a b c
1 foo baz 0
can 1
2 foo baz 4
can 5
bar baz 6
can 7
3 foo baz 8
can 9
bar baz 10
can 11

我想知道 ab 的哪对级别出现在 DataFrame 中:

[(1, 'foo'), (2, 'foo'), (2, 'bar'), (3, 'foo'), (3, 'bar')]

我可以使用 pd.uniquedf.index.get_level_values 来做到这一点,但它看起来有点垃圾:

In [66]: pd.unique(zip(df.index.get_level_values(0), df.index.get_level_values(1)))
Out[66]: array([(1, 'foo'), (2, 'foo'), (2, 'bar'), (3, 'foo'), (3, 'bar')], dtype=object)

有没有“好”的方法?

最佳答案

In [22]: df.reset_index().set_index(['a','b']).index.unique()
Out[22]: array([(1, 'foo'), (2, 'foo'), (2, 'bar'), (3, 'foo'), (3, 'bar')], dtype=object)

关于python - DataFrame 中出现的 MultiIndex 级别的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31991388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com