pandas-query使用

作者: 橘猫吃不胖 | 来源:发表于2020-04-26 19:30 被阅读0次

上午发现了一个很好用的函数,query,这里详细记录学习下

pandas.DataFrame.query

DataFrame.query(self, expr, inplace=False, **kwargs)

具体的使用方法,可以参考官方文档,这里我记录些我觉得好玩儿的内容
官方介绍:

引用当前的变量

使用query函数,可以通过@引用当前的变量
数据集的话,使用的是上一篇的内容:pandas实例-筛选与过滤-Fictional Army

p_name = 'Scouts'
df.query('regiment==@p_name')

注意几个点:

  • query函数用对数据做筛选
  • 这里可以直接使用column name

多个条件的话,可以使用and 或者 or,同样也可以使用& 或者 |

df.query('deaths>100 and regiment=="Nighthawks"')

可以引用index

df.query('index in (1,2,3)')

这里直接使用index代表了

in 和 not in

就和SQL里一样使用的,看上面的那个例子

df.query('readiness in (1,2) or regiment in ("Scouts") ')

==!=的特殊用法

通常==!=表示相等或不相等,但是在query中,可以用来代替in

params=["Nighthawks","Scouts"]
df.query('regiment==@params')

关于Boolean

query中同样适用Boolean,就和布尔数组一样的玩儿法,但又稍微有点儿特殊

df['bools'] = df['readiness']<2
df.query('bools')

这里把布尔值作为了一列,要不然query中是找不到的,

这里还可以配合not或者~一起使用表示取反,就是非的意思

df.query('bools')
df.query('~bools')
df.query('not bools')

使用下来,感觉query,就是和SQL一样的,很好用

相关文章

网友评论

    本文标题:pandas-query使用

    本文链接:https://www.haomeiwen.com/subject/jhhdwhtx.html