我有两个数据框,一个是棒球队的数据,另一个是球员信息。我需要在team data框架中添加一个team salary列,该列按年度和团队查找薪资数据,并返回该年度/团队的球员薪资总和。我尝试过许多不同的方法,但我认为我最接近这个方法:
def get_team_salary(year, team):
data_slice = salary_data_df[(salary_data_df.yearID == year) &
(salary_data_df.teamID == team)]
return data_slice['salary'].sum()
#This line of code works correctly without the next function in the code.
#team_data_df['team_salary'] = get_team_salary(2000,'ANA')
def assign_team_salaries(team_data_df):
year = team_data_df['yearID']
team = team_data_df['teamID']
return team_data_df.applymap(get_team_salary(year, team))
team_data_df['team_salary'] = assign_team_salaries(team_data_df)
是assign_team_salaries
函数调用不起作用。我尝试了很多不同的方法来修复它,并且收到了很多不同的错误消息。你得到的是"ValueError: Can only compare identically-labeled Series objects"
有人能帮我找出我做错了什么吗?我尝试过完全不同的方法,比如对薪资数据使用groupby
,然后先合并两个数据帧,但我也没能让它们起作用。蒂亚!你知道吗
team_data_df
有大量列,但相关列(按顺序)如下所示:
teamID yearID
2000 ANA
2000 ARI
... ...
2016 TOR
2016 WSN
salary_data_df
有相关列:
teamID yearID playerID salary
2000 ANA anderga01 3250000
... ... ... ...
2016 WSN zimmery01 14000000
如您所述,您可以在
salary_data_df
上使用.groupby
,然后将这些和合并到team_data_df
。你知道吗举以下两个小例子:
然后:
您可能还需要注意merge的
on
参数。它们模仿类似SQL的合并规范。你知道吗相关问题 更多 >
编程相关推荐