介绍 Pandas 中的选择与过滤功能
学习如何使用技术来选择数据子集以及过滤数据框。
简介
能够根据特定条件选择特定的行和列来访问和过滤数据,是 Pandas 的两大核心功能之一。
选择(Selection)允许你通过索引或位置来访问 DataFrame 中的特定行或列。例如,如果一个医疗数据集以患者保险号为索引,你可以通过索引查找保险号为 123 的患者;也可以访问 DataFrame 中的第一位或最后一位患者(或任意指定位置的患者)。
过滤(Filtering)则允许你从数据中选出希望保留的子集。在旅行数据集中,你可以按出发国家、目的地或年龄进行筛选;在医疗数据集中,可以按年龄组或健康状况进行筛选。这里的关键是,筛选基于某种条件。
同样,在你的音乐数据集中,可以按艺术家的出生国家进行筛选;也可以组合多个条件,比如查看来自美国且播放量较高的艺术家。
语法
通过筛选 country 列,仅保留值为 US 的行,可以这样写:
1df[df['country'] == 'US']
旅行数据集
思路
你可以根据旅客的人口统计信息或行程细节进行无限多种方式的筛选。
一种可能的思路是:筛选出来自特定国家并前往某个目的地的旅客,然后将这一子集与来自其他国家的旅客进行对比。这有助于识别哪些国籍的旅客更可能对特定目的地感兴趣,从而指导广告投放策略。
面试常见问题
面试中可能会要求你完成基础筛选,如按国籍或目的地筛选;也可能提出更复杂的筛选需求。例如,筛选使用 Gmail 账户的客户,这需要字符串匹配过滤;或者筛选来自一组特定国家的客户,这就需要用到 .isin() 方法。
医疗数据集
思路
聚焦于特定患者子集往往具有重要意义。例如,你可以通过筛选来观察某种药物对特定人群的影响。比如,筛选出患有贫血的孕妇,并将其与未患贫血的女性进行对比分析。
面试常见问题
你可能会被要求使用复合条件进行患者筛选。例如,统计患有心脏病和糖尿病的老年人数量。
也有可能被要求找出医疗记录中包含特定关键词(如 aggression 或 lethargy)的患者。
将要涵盖的概念
- 使用单一属性执行基本筛选:可类比为筛选来自某一国家的乐队。
- 将基本筛选扩展到多列:可类比为筛选来自某一国家且播放量高的乐队。
- 根据列值是否匹配列表中的任意一项进行筛选:可类比为选择来自美国或英国的任意乐队。
- 基于字符串的筛选:可类比为对任意列的值进行字符串匹配,并根据结果进行筛选。