从第一行累加减法

eat*_*chi 0 python algorithm math matrix pandas

我有一个系列和一个DataFrame,都是整数.

s = [10,
     10,
     10]

m = [[0,0,0,0,3,4,5],
     [0,0,0,0,1,1,1],
     [10,0,0,0,0,5,5]]
Run Code Online (Sandbox Code Playgroud)

我想返回一个包含累积差异的矩阵来代替现有的数字.

输出:

n = [[10,10,10,10,7,3,-2],
     [10,10,10,10,9,8,7],
     [0,0,0,0,0,-5,-10]]
Run Code Online (Sandbox Code Playgroud)

Psi*_*dom 5

首先逐行计算数据的cumsum然后从系列中减去:

import pandas as pd

s = pd.Series(s) 
df = pd.DataFrame(m)

-df.cumsum(1).sub(s, axis=0)

#    0   1   2   3  4  5   6
#0  10  10  10  10  7  3  -2
#1  10  10  10  10  9  8   7
#2   0   0   0   0  0 -5 -10
Run Code Online (Sandbox Code Playgroud)