Python 通过在DataFrame上操作的类更改变量?

Python 通过在DataFrame上操作的类更改变量?,python,class,pandas,oop,dataframe,Python,Class,Pandas,Oop,Dataframe,我有一个变量initial_值,等于1000,我想和B列上的值相加。只有当C列等于1而不是0时,initial_值和B列才会相加。因此,类运算后得到的初始值应为1030(或1000+10-30+70+10)。到目前为止,我已经尝试: import pandas as pd from __future__ import division import numpy as np df = pd.DataFrame({"A":[40,50,60,70,20,30,40,10,10,80,60,

我有一个变量initial_值,等于1000,我想和B列上的值相加。只有当C列等于1而不是0时,initial_值和B列才会相加。因此,类运算后得到的初始值应为1030(或1000+10-30+70+10)。到目前为止,我已经尝试:

import pandas as pd
from __future__ import division
import numpy as np

    df = pd.DataFrame({"A":[40,50,60,70,20,30,40,10,10,80,60,40,50],\
 "B":[0,10,10,10,-50,10,10,-30,0,70,-20,-20,10], \
 "C":[0,0,0,1,0,0,0,1,0,1,0,0,1]})

A = df['A']
B = df['B']
C = df['C']

initial_value = 1000.00

class test:
    def __init__(self, A, B, C, initial_value):
        self.A = A
        self.B = B
        self.C = C
        self.initial_value = initial_value

    def test_values(self):
        self.initial_value = self.initial_value + self.B

        return self.initial_value

x = test(A, B, C, initial_value)
x.test_values()

print x
您可以将B列和C列相乘,然后将结果相加:

def test_values(self):
    self.initial_value = self.initial_value + self.B.mul(self.C).sum()
                                            # ^^^^^^^^^^^^^^^^^^^^^^^^
    return self.initial_value
​​
x = test(A, B, C, initial_value)
x.test_values()
# 1060.0
您可以将B列和C列相乘,然后将结果相加:

def test_values(self):
    self.initial_value = self.initial_value + self.B.mul(self.C).sum()
                                            # ^^^^^^^^^^^^^^^^^^^^^^^^
    return self.initial_value
​​
x = test(A, B, C, initial_value)
x.test_values()
# 1060.0
这将有助于:

def test_values(self):
    self.inital_value += sum(self.B*self.C)
    return self.initial_value
将C和B的乘积求和:

import pandas as pd
from __future__ import division
import numpy as np

df = pd.DataFrame({"A":[40,50,60,70,20,30,40,10,10,80,60,40,50],\
"B":[0,10,10,10,-50,10,10,-30,0,70,-20,-20,10], \
"C":[0,0,0,1,0,0,0,1,0,1,0,0,1]})

A = df['A']
B = df['B']
C = df['C']

initial_value = 1000.00

class test:
    def __init__(self, A, B, C, initial_value):
        self.A = A
        self.B = B
        self.C = C
        self.initial_value = initial_value

    def test_values(self):
        self.inital_value += sum(self.B*self.C)
        return self.initial_value

x = test(A, B, C, initial_value)
print(x.test_values())
这将有助于:

def test_values(self):
    self.inital_value += sum(self.B*self.C)
    return self.initial_value
将C和B的乘积求和:

import pandas as pd
from __future__ import division
import numpy as np

df = pd.DataFrame({"A":[40,50,60,70,20,30,40,10,10,80,60,40,50],\
"B":[0,10,10,10,-50,10,10,-30,0,70,-20,-20,10], \
"C":[0,0,0,1,0,0,0,1,0,1,0,0,1]})

A = df['A']
B = df['B']
C = df['C']

initial_value = 1000.00

class test:
    def __init__(self, A, B, C, initial_value):
        self.A = A
        self.B = B
        self.C = C
        self.initial_value = initial_value

    def test_values(self):
        self.inital_value += sum(self.B*self.C)
        return self.initial_value

x = test(A, B, C, initial_value)
print(x.test_values())