gpt4 book ai didi

python - Pandas - 按条件过滤索引中所有值的多索引

转载 作者:太空狗 更新时间:2023-10-30 01:52:50 25 4
gpt4 key购买 nike

我正在尝试使用类似于以下的多索引来过滤数据框。

import numpy as np
import pandas as pd

data = pd.DataFrame(np.random.rand(8),
index=[list('AABBCCDD'),
['M', 'F']*4])
data['Count'] = [1,2,15,17,8,12,11,20]

我想选择给定外部级别索引中两者 'M' 和 'F' 的 'Count' 大于 10 的所有行。因此对于示例数据框,所有 'B ' 和 'D' 行应该被选中,但其他行都没有。我能想到的唯一方法是循环遍历外部索引,但由于 pandas 中的循环几乎从来不是做事的最佳方法,我认为必须有更好的解决方案。

最佳答案

groupby 索引,然后我们使用 filter + all 得到所有计数超过阈值

data.groupby(level=0).filter(lambda x : x['Count'].gt(10).all())
Out[495]:
0 Count
B M 0.232856 15
F 0.536026 17
D M 0.375064 11
F 0.795447 20

受 Jpp 使用 isin 的启发

s=data.Count.min(level=0).gt(10)
data.loc[data.index.get_level_values(0).isin(s[s].index)]

关于python - Pandas - 按条件过滤索引中所有值的多索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49862338/

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