Pandas- 根据条件从 DataFrame 中选择行

Ran*_*ith 5 indexing filtering dataframe pandas

数据帧

category  value   
A         25  
B         10  
A         15  
B         28  
A         18
Run Code Online (Sandbox Code Playgroud)

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

jez*_*ael 12

我认为你需要boolean indexing

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

进而:

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

或者:

df3 = df[df['category'] != 'A']
print (df3)
  category  value
1        B     10
3        B     28
Run Code Online (Sandbox Code Playgroud)

编辑:加入两个条件|for 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
Run Code Online (Sandbox Code Playgroud)