105 使用loc根据数值范围筛选数据

此案例主要通过在loc中使用lambda表达式设置筛选条件,实现在DataFrame中使用复杂的数值范围筛选数据。当在Jupyter Notebook中运行此案例代码之后,将在DataFrame中筛选最新价在目标价位区间的股票,效果分别如图105-1和图105-2所示。

图105-1

图105-2

主要代码如下。

在上面这段代码中,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。