![Pandas数据分析快速上手500招(微课视频版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/35/47216035/b_47216035.jpg)
上QQ阅读APP看书,第一时间看更新
109 使用loc筛选IndexSlice结果
此案例主要演示了使用loc输出IndexSlice筛选的复杂条件数据。当在Jupyter Notebook中运行此案例代码之后,将在DataFrame中筛选最高价大于或等于42.88的所有股票,且仅输出这些股票的股票名称、最高价、昨收价这3列数据,效果分别如图109-1和图109-2所示。
![](https://epubservercos.yuewen.com/DC5573/26580753209033106/epubprivate/OEBPS/Images/Figure-P112_8239.jpg?sign=1739378478-uRMHoMazeA4x0UDpEcmXZTRetqLyE7gL-0-3c028cafa8bb91d4ca79020a3a6aecd2)
图109-1
![](https://epubservercos.yuewen.com/DC5573/26580753209033106/epubprivate/OEBPS/Images/Figure-P112_8240.jpg?sign=1739378478-sNj5E4neSag8ZjxC2mzi1hmCX6MKeIDt-0-9cb4be15476226a7247f9423bd9fc0f1)
图109-2
主要代码如下。
![](https://epubservercos.yuewen.com/DC5573/26580753209033106/epubprivate/OEBPS/Images/Figure-P112_8247.jpg?sign=1739378478-7o7Q1RvhiVdiEkwT2jKRWjW69bT0ZAQc-0-a76b37baad2db2da78670d333abfa7b6)
在上面这段代码中,df.loc[pd.IndexSlice[df.最高价>=42.88, ['股票名称','最高价','昨收价']]]表示在df中筛选最高价大于或等于42.88的所有股票且仅输出这些股票的股票名称、最新价、昨收价这3列数据。实际测试表明,在此案例中df.loc[df.最高价>=42.88, ['股票名称','最高价','昨收价']]也能实现完全相同的功能。IndexSlice常用在多层索引中,以及需要指定应用范围(subset参数)的场景,特别是在链式方法中。
此案例的主要源文件是MyCode\H039\H039.ipynb。