对大熊猫进行汇总和加入

时间:2015-12-21 16:45:42

标签: python pandas dataframe

我花了好几个小时搞清楚但却没有。

我有一个数据集salaries,其中包含以下列 -

['yearID' 'teamID' 'lgID' 'playerID' 'salary']

它列出了每个队员每年的薪水。

我有另一个数据集teams,其中包含以下列 -

['yearID', 'teamID', 'W']

它列出了每个团队每年的胜利(用W表示)。

使用这两个数据集我想拥有一个数据集,每年每个团队都有总薪水和胜利。

我做了很多尝试并且失败了。这是一个:

  1. 我将salaries数据集按'teamID'和'yearID'分组。

  2. 我总结一下,找出某一年的团队总薪水。

    salariesGrouped = salaries.groupby(['teamID', 'yearID']).sum()
    
  3. 我尝试将其与teams数据集合并,但失败了,因为salariesGrouped只有一列,即“薪水”。

    pd.merge(salariesGrouped, teams, on=['yearID', 'teamID'])
    
  4. 我该怎么办?

    示例数据:

    薪金:

    yearID       teamID       lgID       playerID     salary
    1999          A             X           ABC         100
    1999          A             Y           XXX         900
    2000          B             Z           YYY         300
    2001          A             K           ZZZ         200 
    

    队:

    yearID       teamID       W
    1999           A          20
    2000           B          30
    2001           A          40
    2002           D          10
    

    预期产出:

    teamID      yearID       W      salary
    A           1999         20      1000
                2000         40      200
    B           2000         30      300           
    

2 个答案:

答案 0 :(得分:1)

然后尝试这个解决方案:

Salaries = Salaries.groupby(['yearID','teamID']).sum()
Salaries = Salaries.reset_index()

data = pd.merge(df_salaries, df_teams, on=['yearID','teamID'])

答案 1 :(得分:0)

这对你有用吗?

teams['Total Salaries'] = list(salariesGrouped.salary)