如何基于另一列的值获取值增量

时间:2019-08-26 11:29:21

标签: python pandas dataframe

我得到dataframe如下:

print(df)
    id    day
    1     1
    2     3
    1     3
    3     5
    2     6
    3     7


# Calculate the time delta of the same id which has a result as follows:

    id    day    day_delta_next    day_delta_prev
    1     1      2                 0
    2     3      3                 0
    1     3      1                 -2
    3     5      2                 0
    2     6      0                 -3
    3     7      0                 -2
    1     4      0                 -1

我想构造2列,分别由对应于下一个和上一个的天增量组成。
我以前想过的是根据相应的id构造第二天的列,然后减去这两列来得到我想要的。
但我想知道是否有方便的方法。
所以如果不介意有人可以帮助我吗?
预先感谢。

1 个答案:

答案 0 :(得分:2)

DataFrameGroupBy.shiftSeries.sub相减,并将缺失值替换为Series.fillna

@Id
@SequenceGenerator(name = "someSeq", sequenceName ="SOME_SEQ", initialValue=1002)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="someSeq")
private Integer id;