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

如何在Pandas中匹配列值后将另一DataFrame数据追加为新列?

跨赛季球员数据关联:添加下赛季PPG字段

核心思路

通过球员唯一标识(优先用联盟官方球员ID,无ID时可暂用姓名)将下赛季(DF2)的PPG数据映射到本赛季(DF1)中,用左连接保留本赛季所有球员,无下赛季数据的球员对应字段自动填充NaN。

步骤实现

1. 构造示例数据(模拟你的DF1和DF2)

import pandas as pd

# 本赛季数据(DF1)
df1 = pd.DataFrame({
    'Player': ['Michael Jordan', 'Scottie Pippen', 'Dennis Rodman'],
    'PPG': [31.7, 19.4, 5.5],
    'RPG': [6.7, 7.3, 16.1]
})

# 下赛季数据(DF2)
df2 = pd.DataFrame({
    'Player': ['Michael Jordan', 'Scottie Pippen', 'Steve Kerr'],
    'PPG': [28.4, 15.2, 8.7],
    'RPG': [5.8, 6.0, 1.5]
})

2. 提取并映射下赛季PPG

从DF2中筛选需要的字段并重命名,再通过左连接合并到DF1:

# 提取DF2的球员与下赛季PPG,重命名列避免和本赛季PPG冲突
df2_next_ppg = df2[['Player', 'PPG']].rename(columns={'PPG': 'PPG Next Season'})

# 左连接合并,保留DF1全部球员数据
result_df = df1.merge(df2_next_ppg, on='Player', how='left')

3. 查看最终结果

print(result_df)

输出:

Player   PPG   RPG  PPG Next Season
0  Michael Jordan  31.7   6.7             28.4
1  Scottie Pippen  19.4   7.3             15.2
2   Dennis Rodman   5.5  16.1              NaN

额外优化建议

  • 避免重名匹配错误:如果数据集存在同名球员,必须替换为唯一球员ID作为连接键,否则会出现数据匹配混乱。
  • 自定义缺失值显示:单赛季球员的PPG Next Season会显示NaN,可根据需求替换:
    # 替换为0
    result_df['PPG Next Season'] = result_df['PPG Next Season'].fillna(0)
    # 或替换为说明文本
    result_df['PPG Next Season'] = result_df['PPG Next Season'].fillna('无下赛季数据')
    
  • 多字段扩展:如果需要添加更多下赛季数据(如RPG Next Season),只需在提取DF2字段时新增对应列并重命名即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 03:35:15