Python 通过在DataFrame上操作的类更改变量?
我有一个变量initial_值,等于1000,我想和B列上的值相加。只有当C列等于1而不是0时,initial_值和B列才会相加。因此,类运算后得到的初始值应为1030(或1000+10-30+70+10)。到目前为止,我已经尝试: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,
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())