基于多种条件的数据选择(代码改进)

时间:2019-09-04 14:03:50

标签: pandas

df= df[df.a< 7.8]
df= df[df.a> 7.50]
df= df[df.b> 44.85]

此代码可以一行编写吗?或少于3行?

2 个答案:

答案 0 :(得分:3)

我将使用query

df.query('a > 7.5 and a < 7.8 and b > 44.85')

答案 1 :(得分:1)

我相信您需要Series.between和链&来进行按位AND|来进行按位OR,并且要满足以下条件:

df1 = df[df.a.between(7.5, 7.8, inclusive=False) & (df.b> 44.85)]

或者:

df1 = df[(df.a > 7.5) & (df.a < 7.8) & (df.b> 44.85)]

示例

df = pd.DataFrame({
         'a':[7.6,7.5,7.4,7.56,5,7.7],
         'b':[57,48,59,44,42,53],

})

df1 = df[df.a.between(7.5, 7.8, inclusive=False) & (df.b> 44.85)]
print (df1)
     a   b
0  7.6  57
5  7.7  53