与pandas中的df.diff()相反

Mis*_*leu 5 python pandas

我搜索了论坛,寻找一种更简洁的方法,在数据框中创建一个新列,该行是前一行的总和 - 与.diff()函数相反,它取得了差异.

这就是我目前正在解决的问题

df = pd.DataFrame ({'c':['dd','ee','ff', 'gg', 'hh'], 'd':[1,2,3,4,5]}
df['e']= df['d'].shift(-1)
df['f'] = df['d'] + df['e']
Run Code Online (Sandbox Code Playgroud)

您的想法值得赞赏.

Sco*_*ton 7

您可以使用rolling窗口大小为2和sum:

df['f'] = df['d'].rolling(2).sum().shift(-1)

    c  d    f
0  dd  1  3.0
1  ee  2  5.0
2  ff  3  7.0
3  gg  4  9.0
4  hh  5  NaN
Run Code Online (Sandbox Code Playgroud)


Har*_*ore 6

df.cumsum()

Example:
data = {'a':[1,6,3,9,5], 'b':[13,1,2,5,23]}
df = pd.DataFrame(data)

df = 
    a   b
0   1   13
1   6   1
2   3   2
3   9   5
4   5   23

df.diff()

a   b
0   NaN NaN
1   5.0 -12.0
2   -3.0    1.0
3   6.0 3.0
4   -4.0    18.0

df.cumsum()

a   b
0   1   13
1   7   14
2   10  16
3   19  21
4   24  44
Run Code Online (Sandbox Code Playgroud)