使用函数为NBA比赛数据集DataFrame添加场馆及容量列
如何为NBA比赛数据集添加场馆及容量列以进行上座率分析
这是个很实用的数据集增强需求,我平时处理这类体育数据集时经常用类似方法,既简洁又容易维护——下面用Python的pandas库来实现,步骤清晰易懂:
1. 先准备球队-场馆映射数据
每个NBA主场球队都对应固定的比赛场馆和容量,我们先创建一个字典来存储这些关联信息:
# 定义主场球队到场馆、容量的映射字典 team_arena_capacity = { "Cleveland Cavaliers": {"arena": "Rocket Mortgage FieldHouse", "capacity": 19432}, "Los Angeles Lakers": {"arena": "Crypto.com Arena", "capacity": 18997}, "Miami Heat": {"arena": "Kaseya Center", "capacity": 19600}, "Chicago Bulls": {"arena": "United Center", "capacity": 20917}, "Detroit Pistons": {"arena": "Little Caesars Arena", "capacity": 20332} }
提示:如果后续需要扩展更多球队,直接往这个字典里添加条目就行,灵活性拉满。
2. 编写可复用的列添加函数
接下来写一个通用函数,利用pandas的apply方法来匹配并添加新列:
import pandas as pd def add_arena_and_capacity(original_df): # 从映射字典中提取场馆名称 original_df["arena played"] = original_df["Home"].apply(lambda team: team_arena_capacity[team]["arena"]) # 从映射字典中提取场馆容量 original_df["capacity"] = original_df["Home"].apply(lambda team: team_arena_capacity[team]["capacity"]) return original_df
这里的逻辑很直观:通过主场球队名称,从映射字典里精准匹配对应的场馆和容量,一行代码就能完成一列的添加,执行效率也很高。
3. 应用函数到你的原始数据集
现在把你提供的数据集转换成DataFrame,然后调用函数即可:
# 构造你提供的原始数据集 raw_data = { "Date": ["2012-10-30 19:00:00", "2012-10-30 19:30:00", "2012-10-30 20:00:00", "2012-10-31 19:00:00", "2012-10-31 19:30:00"], "Visitor": ["Washington Wizards", "Dallas Mavericks", "Boston Celtics", "Sacramento Kings", "Houston Rockets"], "V_PTS": [84, 99, 107, 87, 105], "Home": ["Cleveland Cavaliers", "Los Angeles Lakers", "Miami Heat", "Chicago Bulls", "Detroit Pistons"], "H_PTS": [94, 91, 120, 93, 96] } # 转换成pandas DataFrame格式 nba_df = pd.DataFrame(raw_data) # 调用函数添加新列 updated_nba_df = add_arena_and_capacity(nba_df) # 查看处理后的结果 print(updated_nba_df)
执行后你会得到包含arena played和capacity列的完整数据集,完全满足后续上座率分析的前置需求。
内容的提问来源于stack exchange,提问作者Stretch
相关产品推荐
相关产品推荐

