弦出现的累积频率

时间:2017-04-08 19:30:11

标签: python string pandas cumulative-frequency

首先,关于我的问题。

我有一个数年的冠军联赛杯获胜者数据框。

像这样,注意团队名称是字符串。

year    team         need this         year    team      wins to date

1       team1                           1       team1          1
2       team2                           2       team2          1
3       team1                           3       team1          2
4       team3                           4       team3          1

我想创建一个累积胜利的新列,这样我就可以绘制每个团队的折线图以及他们赢得奖杯的次数。即我需要x轴上的年份和y上的累积频率,前4个团队需要4条不同的线路。

使用count函数和循环可能有一种简单的方法,但我对python很新,并且没有很好地掌握它们。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

查看groupbytransformcumcountcumsumhttp://pandas.pydata.org/pandas-docs/stable/groupby.html)上的pandas文档。 你可以通过团队分组并使用变换来对bool做一个关于团队是否为空的结果。

df

输入:

   year   team
0     1  team1
1     2  team2
2     3  team1
3     4  team3

进行转型

df['wins to date'] = df.groupby('team').transform(lambda x: x.notnull().cumsum())
df

或DSM建议:

df['wins to date'] = df.groupby('team').cumcount()+1

输出

   year   team  wins to date
0     1  team1             1
1     2  team2             1
2     3  team1             2
3     4  team3             1

答案 1 :(得分:0)

我认为您只想将groupbySeries.cumsum一起使用。如:

df.groupby('team').cumsum()