我想获得一支球队在一个赛季中获胜的时间。
我的数据框看起来像这样:
Date Team Win Player SHOT
2014-20-10 CHI 1 Benoit 1
2014-20-10 CHI 1 Benoit 0
2014-20-10 CHI 1 Benoit 0
2014-20-10 CHI 1 Mickael 1
2014-23-10 CHI 0 Phillips 1
所以问题如下,如果我总结胜利,我获得太多胜利,因为每个玩家的每一个镜头的值都是重复的。
我已经完成了一个独特的值列合并Date,Win和Team,我可以获得这些唯一值的计数。
df.new["Unique"] = df.new["Date"].map(str) + df.new["Team"] + df.new["Win"]
counts = df.new['Unique'].value_counts()
df.new.groupby(['Unique'])['Win'].sum()
我尝试了两种技术来获得胜利的总和,但每次我只得到数据中唯一值的时间。我想要的是每个球队本赛季的胜利总数。因此,每当一个唯一值与Win列中的1相关联时,我想要+1,当它为0 + 0时......所以我得到了每个团队在整个赛季中的总胜利。
我希望我很清楚。我会用R中的聚合做到这一点,但我是python的新手。你会怎么做?
谢谢
答案 0 :(得分:2)
我相信pivot_table
也适用于此。
wins = pd.pivot_table(df, 'Win', 'Date', 'Team').sum()
答案 1 :(得分:1)
如果您有完美的数据:
df.groupby(['Date','Team'])['Win'].max()
因为一个团队在约会时应该只有一个结果。 并为所有日期:
df.groupby(['Date','Team'])['Win'].max().groupby(level=1).sum()