如何根据值列表选择pandas中的行

Val*_*tin 5 python pandas

我试图找出一种方法,我可以在pandas数据框中选择行,因为某些值将在我的列表中.例如

df = pd.DataFrame(np.arange(6).reshape(3,2), columns=['A','B'])
   A  B
0  0  1
1  2  3
2  4  5
Run Code Online (Sandbox Code Playgroud)

我知道我可以选择某一行,例如

df[df.A==0]
Run Code Online (Sandbox Code Playgroud)

将选择A = 0的行.我想要的是选择多个行,其值将在我的列表中,例如[0,2]中的A. 我试过了

df[df.A in [0,2]]
df[list(df.A)==[0,2]]
Run Code Online (Sandbox Code Playgroud)

但没有任何作用.在R语言中,我可以提供%in%运算符.在python语法中我们可以在[0,2]中使用A等.在这种情况下,如何在pandas中选择行的子集?谢谢,瓦伦丁.

Bri*_*uey 12

pd.isin()将选择多个值:

>>> df[df.A.isin([0,2])]
   A  B
0  0  1
1  2  3
Run Code Online (Sandbox Code Playgroud)

  • 你可以使用numpy的logical_not:df[np.logical_not(df.A.isin([0,2]))] (2认同)