Date Visitor V_PTS Home H_PTS \
0 2012-10-30 19:00:00 Washington Wizards 84 Cleveland Cavaliers 94
1 2012-10-30 19:30:00 Dallas Mavericks 99 Los Angeles Lakers 91
2 2012-10-30 20:00:00 Boston Celtics 107 Miami Heat 120
3 2012-10-31 19:00:00 Sacramento Kings 87 Chicago Bulls 93
4 2012-10-31 19:30:00 Houston Rockets 105 Detroit Pistons 96
试图添加到一个搜集到的数据集上,对NBA比赛的出勤率进行分析。我正在尝试添加一些列,比如arenaplayed和capacity。下面是我为添加竞技场而编写的函数的一部分。有没有更好的办法?我在datetime中有日期,所以如何正确地提取年份,以便将正确的竞技场分配给在过去几年中建造了较新竞技场的球队(萨克拉门托国王队)。另外,有没有增加球场容量,一石二鸟,而不是创造另一个功能?你知道吗
def label_arena (hometeam):
if hometeam == 'Toronto Raptors' :
return 'Air Canada Centre'
if hometeam == 'Miami Heat' :
return 'American Airlines Arena'
if hometeam == 'Dallas Mavericks' :
return 'American Airlines Center'
if hometeam == 'Orlando Magic' :
return 'Amway Center'
if hometeam == 'San Antonio Spurs' :
return 'AT&T Center'
if hometeam == 'Indiana Pacers' :
return 'Bankers Life Fieldhouse'
if hometeam == 'Brooklyn Nets' :
return 'Barclays Center'
if hometeam == 'Milwaukee Bucks' :
return 'Bradley Center'
if hometeam == 'Washington Wizards' :
return 'Capital One Arena'
if hometeam == 'Oklahoma City Thunder' :
return 'Chesapeake Energy Arena'
if hometeam == 'Memphis Grizzlies' :
return 'FedExForum'
if hometeam == 'Sacramento Kings' and df['Date'] < 2016:
return 'Sleep Train Arena'
if hometeam == 'Sacramento Kings' and df['Date'] > 2016:
return 'Golden 1 Center'
这就是简化逻辑的方法:
如果您不反对} 的方法:
numpy
,下面是一个使用^{请注意,要使
df['Date']
条件起作用,需要将df['Date']
设置为日期时间序列(如果尚未设置,可以通过df['Date'] = pd.to_datetime(df['Date'])
执行此操作)对于萨克拉门托国王队,您希望合并“Home”和“Date”>;2016,这可能需要您创建一个临时列,然后
df.merge(..., on=['Home','Date_GE_2016'])
并删除“Date\u GE\u 2016”列。你知道吗但更简单的方法是增加一列“季节”=“2015-16”,“2016-17”。随着您的数据库越来越大,您似乎需要它。(对于游戏数据库,您可以从'Date'值自动提取'Season'。对于“home\u arenas\u capacities”数据框,您需要手动编辑它)。你知道吗
相关问题 更多 >
编程相关推荐