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

如何在Pandas DataFrame中为球员匹配对应俱乐部并创建Club列?

实现球员与所属俱乐部的匹配

完全可以用Python结合Pandas实现这个需求,核心思路是先标记出俱乐部行并向下填充俱乐部名称,再过滤掉不需要的行,具体步骤如下:

步骤说明

  • 识别数据中的俱乐部行:这类行的Player列是俱乐部名称,且Age、Nat.列为空值
  • 将俱乐部名称向下填充,让其下方的球员行自动继承对应的俱乐部
  • 过滤掉原始数据中的俱乐部行,保留表头行和球员行

完整代码

import pandas as pd

# 原始数据
df = pd.DataFrame([['Arsenal FC', '', ''],
                   ['In', 'Age', 'Nat.'],
                   ['Leandro Trossard', 28, 'Belgium'],
                   ['Jakub Kiwior', 22, 'Poland'],
                   ['Jorginho', 32, 'Italy'],
                   ['Chelsea FC', '', ''],
                   ['In', 'Age', 'Nat.'],
                   ['Enzo Fernández ', 22, 'Argentina'],
                   ['Mykhaylo Mudryk', 22, 'Ukraine'],
                  ], columns=['Player', 'Age', 'Nat.'])

# 1. 创建Club列,标记俱乐部行
df['Club'] = df.apply(lambda row: row['Player'] if row['Age'] == '' and row['Nat.'] == '' else pd.NA, axis=1)
# 2. 向下填充俱乐部名称,确保球员行匹配对应俱乐部
df['Club'] = df['Club'].ffill()
# 3. 过滤掉原始的俱乐部行(即Player等于Club的行)
df = df[df['Player'] != df['Club']].reset_index(drop=True)

# 查看结果
print(df)

输出结果

Player  Age      Nat.         Club
0               In  Age     Nat.         <NA>
1  Leandro Trossard   28   Belgium  Arsenal FC
2      Jakub Kiwior   22    Poland  Arsenal FC
3          Jorginho   32     Italy  Arsenal FC
4               In  Age     Nat.         <NA>
5   Enzo Fernández    22  Argentina  Chelsea FC
6  Mykhaylo Mudryk   22    Ukraine  Chelsea FC

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 02:50:27