Python 第一行的累积减法
我有一个系列和一个数据帧,都是整数Python 第一行的累积减法,python,algorithm,pandas,math,matrix,Python,Algorithm,Pandas,Math,Matrix,我有一个系列和一个数据帧,都是整数 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]] 我想返回一个矩阵,其中包含取代现有数字的累积差异 输出: n = [[10,10,10,10,7,3,-2], [10,10,10,10,9,8,7], [0,0,0,0,0,-5,-10]] 首先按行计算数据帧的总和,然后从序列中减去: impor
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]]
我想返回一个矩阵,其中包含取代现有数字的累积差异
输出:
n = [[10,10,10,10,7,3,-2],
[10,10,10,10,9,8,7],
[0,0,0,0,0,-5,-10]]
首先按行计算数据帧的总和,然后从序列中减去:
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
您可以使用np.subtract.accumulate直接计算累积差异:
dataframe在哪里?m=dataframe/matrix您向我们展示的内容看起来像Python列表。
# make a copy
>>> n = np.array(m)
# replace first column
>>> n[:, 0] = s - n[:, 0]
# subtract in-place
>>> np.subtract.accumulate(n, axis=1, out=n)
array([[ 10, 10, 10, 10, 7, 3, -2],
[ 10, 10, 10, 10, 9, 8, 7],
[ 0, 0, 0, 0, 0, -5, -10]])