逐列减法和乘法

时间:2019-06-18 06:53:26

标签: python pandas python-2.7 numpy

我需要做减法和乘法列。按照以下格式。

df1

 A  B   C   D   E
10  11  13  12  15
11  13  10  15  13

可以有'n'列数。

formula - subtraction: 
column 1 - column B, them col B - col C then col C - col D and so on. 

formula - Multiplication: 
row1 multiply by row2 

预期输出:

                   A      B   C    D    E
SUBTRACTION       -1     -2   1   -3    15
MULTIPLCATION    -11     -26  10 -45    195

3 个答案:

答案 0 :(得分:3)

如果只希望将第一行减去然后乘以第2行:

arr = df.values
df
    A   B   C   D   E
0   10  11  13  12  15
1   11  13  10  15  13

df.iloc[0, :-1] = arr[0, :-1] - arr[0, 1:]
df

     A  B   C   D   E
0   -1  -2  1   -3  15
1   11  13  10  15  13

.values将数据帧转换为numpy数组。如果您不这样做,那么熊猫只会减去相应的列。

df.iloc[1,:] = arr[0] * arr[1]
df
     A  B   C    D   E
0   -1  -2  1   -3   15
1   -11 -26 10  -45  195

然后更改索引:

df.index = ['SUBTRACTION', 'MULTIPLCATION']
df

                 A   B   C  D   E
SUBTRACTION      -1 -2   1  -3  15
MULTIPLCATION   -11 -26  10 -45 195

答案 1 :(得分:2)

使用NullPointerException,然后将indexingmul用作:

sub

答案 2 :(得分:0)

或者为什么不呢?

>>> df.iloc[0] = df.iloc[0].sub(df.iloc[0].shift(-1)).fillna(df.iloc[0])
>>> df.iloc[1] = df.iloc[0].mul(df.iloc[1])
>>> df
      A     B     C     D      E
0  -1.0  -2.0   1.0  -3.0   15.0
1 -11.0 -26.0  10.0 -45.0  195.0
>>>