因此,给定多索引数据,我只返回满足多个索引中较低索引的所有级别的条件的行。下面是一个小的工作示例:
df = pd.DataFrame({'a': [1, 1, 2, 2], 'b': [1, 2, 3, 4], 'c': [0, 2, 2, 2]})
df = df.set_index(['a', 'b'])
print(df)退出:
c
a b
1 1 0
2 2
2 3 2
4 2现在,我想返回c > 1的条目。例如,我想做这样的事情
df[df[c > 1]]退出:
c
a b
1 2 2
2 3 2
4 2但我想
退出:
c
a b
2 3 2
4 2对于如何以最有效的方式做到这一点,有什么想法吗?
发布于 2015-10-21 17:02:30
最后我使用了groupby
df.groupby(level=0).filter(lambda x: all([c > 1 for v in x['c']]))https://stackoverflow.com/questions/33234260
复制相似问题