按顺序计数重复输入

时间:2017-12-19 15:55:26

标签: python pandas dataframe

我目前正在开展一个项目,根据他们是否编辑网站,我必须在网站上测量某些活动。我有一个类似于这个的数据框:

df = pd.DataFrame({"x":["a", "b", "c", "b","b"],
               "y":["red", "blue", "green", "yellow","red"],
               "z":[1,2,3,4,5]})

我想在数据框中添加一列,以便计算重复值的数量(编辑的数量,即列x),使用“z”列作为事件发生时间的度量。 / p>

E.g。有一个额外的列:

df["activity"] = pd.Series([1,1,1,2,3])

我如何在Python中最好地解决这个问题?不知道我最好的方法是什么。

1 个答案:

答案 0 :(得分:1)

  

温和我在评论中同时回答了问题。我正在将评论充实为答案。

使用groupby + cumcount -

df['activity'] = df.groupby('x').cumcount() + 1
df

   x       y  z  activity
0  a     red  1         1
1  b    blue  2         1
2  c   green  3         1
3  b  yellow  4         2
4  b     red  5         3