我正在尝试找出一种方法,我可以在pandas数据框中选择行,因为某些值将在我的列表中。例如
df = pd.DataFrame(np.arange(6).reshape(3,2), columns=['A','B'])
A B
0 0 1
1 2 3
2 4 5
我知道我可以选择某一行,例如
df[df.A==0]
将选择A = 0的行。我想要的是选择多个行,其值将在我的列表中,例如在[0,2]中的A.我试过了
df[df.A in [0,2]]
df[list(df.A)==[0,2]]
但没有任何作用。在R语言中,我可以提供%in%运算符。在python语法中我们可以在[0,2]中使用A等。在这种情况下,如何在pandas中选择行的子集? 谢谢, 瓦伦丁。
答案 0 :(得分:11)
pd.isin()将选择多个值:
>>> df[df.A.isin([0,2])]
A B
0 0 1
1 2 3
答案 1 :(得分:2)
如果你不喜欢这种语法,你也可以使用query(在2014年的pandas 0.13中引入):
>>> df.query('A in [0,2]')
A B
0 0 1
1 2 3