Adding a column thats result of difference in consecutive rows in pandas

dataframe, pandas, series

Solution

Use shift.

df['dA'] = df['A'] - df['A'].shift(-1)

Problem

Lets say I have a dataframe like this ``` A B 0 a b 1 c d 2 e f 3 g h ``` 0,1,2,3 are times, a, c, e, g is one time series and b, d, f, h is another time series. I need to be able to add two columns to the orignal dataframe which is got by computing the differences of consecutive rows for certain columns. So i need something like this ``` A B dA 0 a b (a-c) 1 c d (c-e) 2 e f (e-g) 3 g h Nan ``` I saw something called diff on the dataframe/series but that does it slightly differently as in first element will become Nan.

Original source

Related problems