我有一个数据框,其中包含表示事件发生的整数列表。我希望添加另一个列,以添加事件中的事件数。
d = {'Occurrence_col' : pd.Series([1., 1., 2., 2., 2.]),
'Values' : pd.Series([101, 102, 103, 104, 105])}
df = pd.DataFrame(d)
Occurrence_col Values
1 101
1 102
2 103
2 104
2 105
Occurrence_col Desired_Output Values
1 1 101
1 2 102
2 1 103
2 2 104
2 3 105
我知道通过循环可以做到这一点,但是什么是更像熊猫的解决方案?
答案 0 :(得分:2)
您可以在pandas> = 0.13.0中使用groupby
cumcount
:
>>> df["Desired_Output"] = df.groupby("Occurrence").cumcount() + 1
>>> df
Occurrence Values Desired_Output
0 1 101 1
1 1 102 2
2 2 103 1
3 2 104 2
4 2 105 3