微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python-通过multiIndex之一的最高分位数过滤数据帧行

我有一个带有multiIndex的数据框,我只想保留其列值在级别0索引的最高分位数中的子集记录.

在以下示例df中,我想保留其列A值在每个级别0索引的最高分位数为75%的记录. pythonic的做事方式是什么?

arrays = [np.array(['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux']),
    np.array(['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two'])]

df = pd.DataFrame(np.random.randn(8, 3), index=arrays, columns = ['A','B','C'])

谢谢

解决方法:

你是这个意思吗?

df.groupby(level=0, group_keys=False).apply(lambda g: g[g.A >= g.A.quantile(0.75)])

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐