Python 获取条件上唯一值的计数
我想知道一支球队在一个赛季中获胜的次数 我有一个如下所示的数据框:Python 获取条件上唯一值的计数,python,pandas,dataframe,group-by,Python,Pandas,Dataframe,Group By,我想知道一支球队在一个赛季中获胜的次数 我有一个如下所示的数据框: 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-1
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
所以问题是,如果我把胜利加起来,我会得到太多的胜利,因为每个球员的每一次射门的值都是重复的
我已经做了一个独特的价值列合并日期,胜利和团队,我能够得到这些独特的价值计数
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()
我尝试了两种方法来获得胜利的总和,但每次我只得到数据中唯一值的次数。我想要的是整个赛季每支球队的总胜利数。因此,每当一个唯一的值与胜利列中的1相关联时,我想要+1,当它为0+0时……所以我得到了整个赛季每个球队的总胜利
我希望我明白了。我本可以在R中使用聚合来实现这一点,但我对python是新手。你会怎么做
如果您有完美的数据,谢谢您:
df.groupby(['Date','Team'])['Win'].max()
因为一个团队在一个日期应该只有一个结果。
对于所有日期:
df.groupby(['Date','Team'])['Win'].max().groupby(level=1).sum()
我相信pivot\u table在这里也能起作用
wins = pd.pivot_table(df, 'Win', 'Date', 'Team').sum()