![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=1739373863-dSVUZCqkSsKlBpNCsVn1MboHUfowCula-0-0525d66b850cef9b7d6b6776827f1f0a)
图105-1
![](https://epubservercos.yuewen.com/DC5573/26580753209033106/epubprivate/OEBPS/Images/Figure-P109_7997.jpg?sign=1739373863-fFxPY8HyGpLUv5Yrg6AeOJtNmnGCLqrk-0-1011bcd3e14d3a4ca4bbbfb12bdce8a0)
图105-2
主要代码如下。
![](https://epubservercos.yuewen.com/DC5573/26580753209033106/epubprivate/OEBPS/Images/Figure-P109_8000.jpg?sign=1739373863-CrzWIeTmxW7wjdFBxPH8WjQPPPYXOU0h-0-41624ecffd3f2576b6caa46b993e056c)
在上面这段代码中,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。