![Pandas数据分析快速上手500招(微课视频版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/35/47216035/b_47216035.jpg)
上QQ阅读APP看书,第一时间看更新
105 使用loc根据数值范围筛选数据
此案例主要通过在loc中使用lambda表达式设置筛选条件,实现在DataFrame中使用复杂的数值范围筛选数据。当在Jupyter Notebook中运行此案例代码之后,将在DataFrame中筛选最新价在目标价位区间的股票,效果分别如图105-1和图105-2所示。
![](https://epubservercos.yuewen.com/DC5573/26580753209033106/epubprivate/OEBPS/Images/Figure-P109_7996.jpg?sign=1738985457-2In3hENRpc7uR0nD3Fp4vKXaap5DkoQi-0-765c48bcbcac7c97529ac2dafebf53f9)
图105-1
![](https://epubservercos.yuewen.com/DC5573/26580753209033106/epubprivate/OEBPS/Images/Figure-P109_7997.jpg?sign=1738985457-SDbN2OfBVc18URkOJ0OdE81TGM7fPAp8-0-07af22111748245e945f212fe7c03167)
图105-2
主要代码如下。
![](https://epubservercos.yuewen.com/DC5573/26580753209033106/epubprivate/OEBPS/Images/Figure-P109_8000.jpg?sign=1738985457-L6e8foHvbWCElCa0eFEXisrdzyuAjTyi-0-f58e7e404b40d7badbd100fb7fd51fc4)
在上面这段代码中,df.assign(left=df.目标价位区间.str.findall(r'\d+').str[0]).assign(right=df.目标价位区间.str.findall(r'\d+').str[1]).astype({'left':np.int64,'right':np.int64}).loc[lambda x:(x.最新价>x.left) & (x.最新价<x.right)].drop(['left','right'],axis=1)表示在df中筛选最新价在目标价位区间的股票数据。整个过程如下:首先将目标价位区间的文本拆分为left列和right列,然后将left列和right列的数据类型转换为int64,接着使用lambda表达式将最新价列与left列和right列进行比较筛选,最后删除临时添加的left列和right列。
此案例的主要源文件是MyCode\H551\H551.ipynb。