Pandas Dataframe:添加值的出现

时间:2014-06-11 14:53:25

标签: python pandas dataframe

我有一个数据框,其中包含表示事件发生的整数列表。我希望添加另一个列,以添加事件中的事件数。

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

我知道通过循环可以做到这一点,但是什么是更像熊猫的解决方案?

1 个答案:

答案 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