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)