2017-04-26 80 views
0

DF
类别,值
A,25
B,10
A,15
B,28
A,18从数据帧Pandas-选择行

需要选择以下条件满足的行,
1. category = A,值在10和20之间
2.除A以外的其他类别

回答

2

我认为你需要boolean indexing

df1 = df[(df['category'] == 'A') & (df['value'].between(10,20))] 
print (df1) 
    category value 
2  A  15 
4  A  18 

然后:

df2 = df[(df['category'] != 'A') & (df['value'].between(10,20))] 
print (df2) 
    category value 
1  B  10 

或者:

df3 = df[df['category'] != 'A'] 
print (df3) 
    category value 
1  B  10 
3  B  28 

编辑:用|加入这两个条件为or,不要忘记添加()先条件。

df1 = df[((df['category'] == 'A') & (df['value'].between(10,20))) | 
     (df['category'] != 'A')] 
print (df1) 
    category value 
1  B  10 
2  A  15 
3  B  28 
4  A  18 
+0

我需要在一个数据框中的结果。什么是有效的方法来做到这一点? – Ranjith

+0

我不确定是否理解,所有结果都在一个'DataFrame' - 'df1','df2','df3'中。你能解释更多吗? – jezrael

+0

这两个条件在一个查询中得到结果。结果将在范围内具有类别A以及所有其他类别的数据。 – Ranjith

相关问题