熊猫在布尔索引中使用行标签

发布于 2021-01-29 14:11:14

所以我有一个像这样的DataFrame:

df = pd.DataFrame(np.random.randn(6, 3), columns=['a', 'b', 'c'])

      a         b         c
0  1.877317  0.109646  1.634978
1 -0.048044 -0.837403 -2.198505
2 -0.708137  2.342530  1.053073
3 -0.547951 -1.790304 -2.159123
4  0.214583 -0.856150 -0.477844
5  0.159601 -1.705155  0.963673

我们可以像这样对它进行布尔索引

df[df.a > 0]

     a         b         c
0  1.877317  0.109646  1.634978
4  0.214583 -0.856150 -0.477844
5  0.159601 -1.705155  0.963673

我们还可以通过行标签将其切片,如下所示:

df.ix[[0,2,4]]

    a         b         c
0  1.877317  0.109646  1.634978
2 -0.708137  2.342530  1.053073
4  0.214583 -0.856150 -0.477844

我想同时执行这两个操作(因此,避免只做行标签过滤器而不必要地复制)。我将如何去做?

我要寻找的伪代码:

df[(df.a > 0) & (df.__index__.isin([0,2,4]))]
关注者
0
被浏览
108
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您几乎拥有它:

    In [11]: df[(df.a > 0) & (df.index.isin([0, 2, 4]))]
    Out[11]: 
              a         b         c
    0  1.877317  0.109646  1.634978
    4  0.214583 -0.856150 -0.477844
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看