我目前正在开展一个项目,根据他们是否编辑网站,我必须在网站上测量某些活动。我有一个类似于这个的数据框:
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中最好地解决这个问题?不知道我最好的方法是什么。
答案 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