このようなパンダのデータフレームがあります。
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 つだけ返します。インデントが正しいと確信しています。
なぜそれをしているのですか、どうすれば辞書を返すことができますか?