gpt4 book ai didi

python - pandas 基于级别中项目数量的多索引切片

转载 作者:行者123 更新时间:2023-12-01 06:41:23 24 4
gpt4 key购买 nike

我有一个多索引系列,如果第 1 级有多个项目,我将尝试打印第 0 级的所有值。例如,采用此系列:

   match
0 0 apple
1 0 orange
1 pear
2 banana

我不关心 apple,因为它是 0 级、索引 0 处的唯一条目。由于 0 级、索引 1 处有三个项目,我想将它们全部打印出来。我得到的最好的是 print(fruit.loc[(fruit.index.get_level_values('match') != 0)]),但这只会给我梨和香蕉,而不是橙子。看来我应该能够以某种方式从那里获取 0 级索引并将其传递给 .loc(),但我没有任何运气。

要创建上述系列:

arrays = [[0, 1, 1, 1], [0, 0, 1, 2]]
multi = pd.MultiIndex.from_arrays(arrays, names=('', 'match'))

fruit = pd.Series(data=('apple', 'orange', 'pear', 'banana'), index=multi)

最佳答案

您可以通过在级别 0 上使用 groupby 并使用 count 进行 transform 来创建掩码,以查找级别 1 具有超过 1 个项目

m = fruit.groupby(level=0).transform('count') > 1
fruit[m]

Out[421]:
match
1 0 orange
1 pear
2 banana
dtype: object
<小时/>

从@ALolz创建掩码m的另一种方法

m = fruit.index.get_level_values(0).duplicated(keep=False)

关于python - pandas 基于级别中项目数量的多索引切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59440448/

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