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

Pandas基于DataFrame两列创建Series的代码逻辑解释请求

代码逻辑与问题解答

为什么需要连续定位两列

两个定位操作的作用完全独立,不存在重复定位,两者缺一不可:

  • 第一次定位country列,是为了构造「筛选美国企业」的行过滤条件,属于筛选规则的数据源获取
  • 第二次定位industry列,是为了拿到后续要统计的目标字段,属于统计对象的获取
    你看到的「连续定位两列」是pandas链式调用的书写形式,本质是先后执行「行过滤」和「取目标列」两个独立步骤,只是写在了同一行。

代码作用

这段代码最终返回一个长度为2的Series,展示世界500强美国企业中数量最多的前2个行业,以及对应行业的企业数量。

逐段执行逻辑拆解

我们把链式调用拆成独立步骤理解更清晰:

  1. 执行f500["country"] == "USA"
    取出f500的country列,逐行判断值是否等于"USA",返回和原DataFrame行数一致的布尔Series,值为True就代表该行对应的企业是美国企业
  2. 执行f500["industry"][第一步得到的布尔Series]
    先取出f500的industry行业列,再用第一步得到的布尔索引过滤,只保留美国企业对应的行业值,得到一个仅包含美国企业行业信息的Series

    这里还有更规范的等效写法:f500.loc[f500["country"] == "USA", "industry"],loc写法更推荐用于同时做行过滤+列选择的场景,不容易触发pandas的链式赋值警告

  3. 执行.value_counts()
    对过滤得到的美国企业行业Series做频次统计,返回新的Series,索引是行业名称,值是对应行业的美国500强企业数量,默认按数量从高到低排序
  4. 执行.head(2)
    取频次统计结果的前2行,也就是美国企业数量最多的前2个行业的统计结果,赋值给变量industry_usa

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 07:36:03