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

Pandas处理NBA总决赛MVP数据时Team MVPS列全为1的问题排查

NBA总决赛MVP数据处理问题排查与修正

问题原因

你的代码存在核心逻辑错误:每次循环执行df['Team MVPS'] = t_count时,是把整个列的所有行都设置为当前球队的MVP人数。循环结束后,整列只会保留最后一次循环的t_count值——如果最后遍历的球队恰好只有1位MVP,那整列就全变成1了。

本质是你没有针对每个球队对应的行单独赋值,而是每次都全局覆盖了整列数据。

修正方案

方案一:用Pandas分组+transform(推荐,更高效)

这是Pandas原生的向量化操作,比循环更简洁高效:

import pandas as pd

df = pd.read_csv("NBA Finals MVP 2000.csv")
# 按球队分组,统计每组内不同MVP的人数,再映射回原数据的对应行
df['Team MVPS'] = df.groupby('Team')['Finals MVP'].transform(lambda x: x.nunique())
df.head(24)

方案二:修复原循环逻辑

如果想保留循环写法,需要修改赋值逻辑,只给当前球队的行赋值:

import pandas as pd
import numpy as np

df = pd.read_csv("NBA Finals MVP 2000.csv")
teams = df['Team'].unique()

# 先初始化列,避免空值
df['Team MVPS'] = 0

for t in teams:
    td = df[df['Team'] == t]
    # 直接用nunique()统计不同MVP的人数,无需手动循环计数
    t_count = td['Finals MVP'].nunique()
    # 仅给当前球队对应的行赋值,而非整列
    df.loc[df['Team'] == t, 'Team MVPS'] = t_count

df.head(24)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:53:12