Pandas usando tags de fila en indexación booleana

Así que tengo un DataFrame como este:

df = pd.DataFrame(np.random.randn(6, 3), columns=['a', 'b', 'c']) abc 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 

Podemos indexarlo booleanamente de esta manera.

 df[df.a > 0] abc 0 1.877317 0.109646 1.634978 4 0.214583 -0.856150 -0.477844 5 0.159601 -1.705155 0.963673 

También podemos cortarlo a través de tags de fila como esta:

 df.ix[[0,2,4]] abc 0 1.877317 0.109646 1.634978 2 -0.708137 2.342530 1.053073 4 0.214583 -0.856150 -0.477844 

Me gustaría realizar estas dos operaciones al mismo tiempo (así que evito hacer una copia innecesaria solo para hacer el filtro de tags de la fila). ¿Cómo voy a hacerlo?

Pseudo código para lo que busco:

 df[(df.a > 0) & (df.__index__.isin([0,2,4]))] 

Casi lo tienes:

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