【发布时间】:2019-03-02 17:07:39
【问题描述】:
我遇到了一个我认为并不复杂但我看不到简单方法的问题...
我有一个这样的数据框(stats_match),有 11 000 行:
domicile exterieur season home away
FC Metz Stade Rennais FC 1999 0.0 0.0
Paris Saint-Germain ESTAC Troyes 1999 1.0 0.0
Olympique Lyonnais Montpellier Hérault SC 1999 1.0 2.0
Girondins de Bordeaux SC Bastia 1999 3.0 2.0
RC Strasbourg Alsace RC Lens 1999 1.0 0.0
AS Monaco AS Saint-Etienne 1999 2.0 2.0
我想计算球队/赛季进球数的累计总和,并且只针对 Ligue 1 的实际球队(因为我预测会从实际赛季中删除没有球队的行)。实际团队存储在其他数据框(stade)中,如下所示:
equipe stade capacity
Angers SCO Stade Raymond Kopa 17048
Nîmes Olympique Stade des Costières 18364
Girondins de Bordeaux Matmut Atlantique 42115
Girondins de Bordeaux Stade Chaban-Delmas 33290
RC Strasbourg Alsace Stade de la Meinau 26109
LOSC Stade Pierre Mauroy 25000
我试过这个:
d = defaultdict(list)
for index, row in stats_match.iterrows():
if ((row.domicile in list(stade.equipe)) & (row.exterieur in list(stade.equipe))):
d[row.domicile].append([row.saison,row.but_domicile])
d[row.exterieur].append([row.saison,row.but_exterieur])
elif (row.domicile in list(stade.equipe)):
d[row.domicile].append([row.saison,row.but_domicile])
else:
d[row.exterieur].append([row.saison,row.but_exterieur])
代码有效,并为我提供了我的球队的字典,其中包含所有进球(主客场)。 我不知道这是否是最简单的方法,因为现在,我不知道如何根据季节条件来计算累积总和:
- np.add.accumulate()
- np.cumsum()
然后如何在我的数据框的正确位置正确添加它?我想在循环期间将索引添加到我的字典中,它可以工作吗?
非常感谢。
【问题讨论】:
标签: python pandas dataframe cumulative-sum