繁体   English   中英

减去 DataFrame 中每一列的前一列的值

[英]Substract the value of the previous column for each columns in a DataFrame

假设我有一个看起来像这样的 DataFrame

    A B  C
1   0 4  7
2   3 8  10
3   5 13 19

我想用 A 列的值减去 B 列的值,用 B 列的值减去 C 列的值,即 output:

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

执行此类操作的最简单方法是什么?

您可以使用diff

df.diff(axis=1).fillna(df)

Output:

     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]])

或与 pandas

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM