bool 取反_dataframe根据bool值高效地进行多重条件筛选的
生活随笔
收集整理的這篇文章主要介紹了
bool 取反_dataframe根据bool值高效地进行多重条件筛选的
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
pandas的數據篩選功能很強大,可以看下面的例子
要篩選a列小于3的數據,只要
如果我們想篩選a列大于1,且小于3的數據,用1<df['a']<3可以嗎?很遺憾,這樣是會報錯的。
ValueErrordf['a']<3到底是何方神圣,打印出來瞧瞧。
方案一:for循環生成bool值列表
這樣可以完美使用連續的不等式,但是我們知道當序列長度很長時,對于dataframe來說,使用矢量化的操作效率會比單純的for循環更高。
方案二:位操作
我們知道,python的列表可以進行位操作。那dataframe這個bool值序列可以類似操作嗎?
因為位與操作優先級比大于號,小于號要高,所以表達式要括號括起來。我們發現:第三個式子剛好是前兩個式子位與操作的結果??匆幌侣摵媳磉_式對df的作用效果,剛好就是a列大于1小于3的篩選結果。
我們對兩種方案進行對比df的長度擴充到10000.
結論:位操作在數據序列足夠長時效率明顯優于for循環。
延伸:
或操作:
dataframe還支持非操作,對bool值序列取反:
總結
以上是生活随笔為你收集整理的bool 取反_dataframe根据bool值高效地进行多重条件筛选的的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用户自定义一个异常,编程创建并抛出某个异
- 下一篇: php case语句吗,【PHP公开课|