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

如何判断df1球员是否在df2中并更新Matched与Description列?

实现方法

针对大型DataFrame,推荐使用向量化操作保证效率,避免逐行遍历的性能损耗。具体步骤如下:

  1. 定义目标字符串:
x = 'basketball player'
  1. 提取df2中所有运动员姓名的集合(集合的成员查询效率远高于DataFrame列查询):
df2_player_set = set(df2['Player'])
  1. 利用pandas的isin方法结合numpy.where批量填充df1的Matched和Description列:
import numpy as np
import pandas as pd

# 填充Matched列
df1['Matched'] = np.where(df1['Player'].isin(df2_player_set), df1['Player'], np.nan)
# 填充Description列
df1['Description'] = np.where(df1['Player'].isin(df2_player_set), x, np.nan)

执行结果

处理后的df1与预期完全一致:

PlayerTeamMatchedDescription
Michael JordanChicago BullsMichael Jordanbasketball player
Kobe BryantLos Angeles LakersKobe Bryantbasketball player
Lebron JamesLos Angeles Lakersnannan

补充说明

  • 如果需要不区分大小写的匹配,可以先将两列统一转为小写再判断:
    df2_player_set = set(df2['Player'].str.lower())
    df1['Matched'] = np.where(df1['Player'].str.lower().isin(df2_player_set), df1['Player'], np.nan)
    df1['Description'] = np.where(df1['Player'].str.lower().isin(df2_player_set), x, np.nan)
    
  • 向量化操作相比apply方法,在处理百万级以上数据时性能提升明显,更适合大型DataFrame场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 00:27:20