Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为数据帧中的每列减去前一列的值_Python_Pandas - Fatal编程技术网

Python 为数据帧中的每列减去前一列的值

Python 为数据帧中的每列减去前一列的值,python,pandas,Python,Pandas,让我们假设我有一个如下所示的数据帧 A B C 1 0 4 7 2 3 8 10 3 5 13 19 我想用A列的值减去B列的值,用B列的值减去C列的值,这将输出: A B C 1 0 4 3 2 3 5 2 3 5 8 6 执行这种操作最简单的方法是什么?您可以使用diff: df.diff(axis=1).fillna(df) 输出: A B C 1 0.0 4.0 3.0 2 3.0 5.0 2.0 3

让我们假设我有一个如下所示的数据帧

    A B  C
1   0 4  7
2   3 8  10
3   5 13 19
我想用A列的值减去B列的值,用B列的值减去C列的值,这将输出:

    A B C
1   0 4 3
2   3 5 2
3   5 8 6

执行这种操作最简单的方法是什么?

您可以使用
diff

df.diff(axis=1).fillna(df)
输出:

     A    B    C
1  0.0  4.0  3.0
2  3.0  5.0  2.0
3  5.0  8.0  6.0

使用普通numpy中的矩阵乘法:

import numpy as np
import pandas as pd

M = np.array([[0, 4,  7],
             [3, 8,  10],
             [5, 13, 19]])

X = np.array([[0, -1,  0],
             [0, 0,  -1],
             [0, 0, 0]])

M + M @ X
# Output : array([[0, 4, 3],
#                 [3, 5, 2],
#                 [5, 8, 6]])
还是和熊猫在一起

# also works with panda data frames
df = pd.DataFrame(M)
df
df + df.dot(X)