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

如何用列表推导式从DataFrame按公司名提取对应区域值?

解决方法

方法一:用merge(推荐)

这是Pandas处理DataFrame关联匹配的标准操作,效率高且代码简洁:

# 以test的company列和bsr的market列为匹配键,左连接保留test所有行
test = test.merge(bsr, left_on='company', right_on='market', how='left')
# 不需要market列的话可以删掉
test = test.drop('market', axis=1)

how='left'能保证test里的所有公司都被保留,要是在bsr里找不到匹配的区域,对应的region会显示为NaN。

方法二:列表推导式(你最初尝试的写法)

如果一定要用列表推导,先把bsr转成键值映射会更高效:

# 生成market到region的映射字典
market_region_map = bsr.set_index('market')['region'].to_dict()
# 用列表推导生成region列
test['region'] = [market_region_map.get(company, None) for company in test['company']]

get(company, None)的意思是,要是公司名在映射里找不到,就返回None,你也可以换成'未知'这类自定义默认值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 22:09:24