按顺序计数重复输入

问题描述 投票:1回答:1

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

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

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

例如。有一个额外的列:

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

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

python pandas dataframe
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.