【问题标题】:Pandas - Update column values based on other column factor countPandas - 根据其他列因子计数更新列值
【发布时间】:2021-05-20 00:09:25
【问题描述】:

我有以下数据框

              id      timestamp
0              0  1616152948734
1              0  1616152958727
2              0  1616152968727
3              0  1616152978737
4              0  1616152997360
...            ...
39             0  1616153347348
40             0  1616153357350
41             0  1616153360638
42             1  1618523825696
43             1  1618523831257
44             2  1618566194435
45             2  1618566206091
46             2  1618566216078
47             2  1618566226080
48             3  1618566343202
49             3  1618566346287

但是要匿名时间戳,我的目标是根据idtimestamp变成计数

              id  timestamp
0              0  1
1              0  2
2              0  3
3              0  4
4              0  5
...            ...
39             0  40
40             0  41
41             0  42
42             1  1
43             1  2
44             2  3
45             2  4
46             2  5
47             2  6
48             3  1
49             3  2

我正在寻找类似的问题和答案。我能找到的最接近的是factorize-a-column-of-strings-in-pandaschange-values-in-pandas-dataframe-according-to-value-counts,但不太清楚如何解决我的问题。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    只需 .cumcount() 即可。如果你想从 1 开始,那么只需将 1 添加到结果中

    df = pd.DataFrame({'id': [0,0,0,0,1,1,1,1,1,1,2,2,2,2,2]})
    df['timestamp'] = df.groupby(['id']).cumcount()
    
    
        id  timestamp
    0   0   0
    1   0   1
    2   0   2
    3   0   3
    4   1   0
    5   1   1
    6   1   2
    7   1   3
    8   1   4
    9   1   5
    10  2   0
    11  2   1
    12  2   2
    13  2   3
    14  2   4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-28
      • 1970-01-01
      • 2020-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      相关资源
      最近更新 更多