0

このようなパンダのデータフレームがあります。

frame =  pd.DataFrame({'home'    : ['CHI', 'ATL', 'SEA', 'DET', 'STL','HOU' ,'CHI','CHI'],
                     'away'    : ['DET', 'CHI', 'HOU', 'TOR', 'DAL', 'STL', 'MIA', 'SEA'],
                     'awayPTS' : [88, 75, 105, 99, 110, 85, 95, 100],
                     'homePTS' : [92, 88, 95, 97, 100, 74, 98, 110],
                      'week' : [1, 1, 1, 2, 2,3, 3, 4]})

これを行うことで、必要な出力を得ることができます

uniqueTeams = frame['home'].unique()

def _earlyGamesPTS(n):
   for team in uniqueTeams:
       homePTS = frame['homePTS'][(frame.week <= n) & (frame.home == team)].sum()
       awayPTS = frame['awayPTS'][(frame.week <= n) & (frame.away == team)].sum()
       totalPTS = homePTS+ awayPTS
       print team, totalPTS

その関数を実行すると、必要な情報が出力されます。

関数が必要な値を返すのに問題があります。

def _earlyGamesPTS(n):
    for team in uniqueTeams:
        homePTS = frame['homePTS'][(frame.week <= n) & (frame.home == team)].sum()
        awayPTS = frame['awayPTS'][(frame.week <= n) & (frame.away == team)].sum()
        totalPTS = homePTS+ awayPTS
    return team, totalPTS 

値のセットを 1 つだけ返します。インデントが正しいと確信しています。

なぜそれをしているのですか、どうすれば辞書を返すことができますか?

4

1 に答える 1