You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求解释《Murach's Python for Data Science》中指定pandas代码行

代码行actions = shots[shots.action_type.str.contains('|'.join(commonSubstrings))].action_type.to_list()详解

先明确背景:

  • 《Murach's Python for Data Science》是优秀的pandas入门书籍,但部分内容讲解不够充分
  • shots是存储斯蒂芬·库里一整个NBA赛季投篮信息的DataFrame,action_type是其中记录投篮动作类型的列

下面把这段代码拆成5个核心步骤逐一解释:

  1. 拼接匹配规则:'|'.join(commonSubstrings)

    • commonSubstrings是一个字符串列表,比如可能是['Jump Shot', 'Pull-Up', 'Layup']这类投篮动作相关的子串
    • 用join方法把列表里的所有子串用竖线|拼接,竖线在正则逻辑里代表“或”,比如上面的例子会拼成'Jump Shot|Pull-Up|Layup',意思是匹配任意一个包含这些子串的内容
  2. 生成筛选标记:shots.action_type.str.contains(...)

    • 这是pandas的字符串处理方法,对action_type列的每一行内容,检查是否包含第一步拼接出来的规则里的任意子串
    • 返回一个布尔值Series:符合条件的行对应True,不符合的对应False
  3. 提取DataFrame子集:shots[布尔Series]

    • 用第二步得到的布尔Series作为筛选器,从原shotsDataFrame里只保留action_type符合匹配规则的行,得到一个仅包含目标数据的子集DataFrame
  4. 提取目标列:.action_type

    • 从筛选后的子集DataFrame里,单独取出action_type这一列,得到一个pandas Series对象
  5. 转换为Python列表:.to_list()

    • 把这个Series转换成普通的Python列表,最终赋值给actions变量,后续可以直接用列表的方式操作这些投篮动作类型

内容的提问来源于stack exchange,提问作者mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 23:57:35