Python 来自不同数据帧的总和值
我有以下数据帧:Python 来自不同数据帧的总和值,python,group-by,conditional-statements,Python,Group By,Conditional Statements,我有以下数据帧: print(X) Quantity Class 1 0 5 0 6 1 8 2 9 3 0 4 ... print(dframe) Pred_class Delta 0 -0.046348 1 1.856508 2 20.347518
print(X)
Quantity Class
1 0
5 0
6 1
8 2
9 3
0 4
...
print(dframe)
Pred_class Delta
0 -0.046348
1 1.856508
2 20.347518
3 -7.138728
4 6.642686
我想为每个类别的X-“Final_Q”-X[“Quantity”]和相应的“Delta”之和创建一个附加列:
打印(X)
我试过:
for i in np.unique(X["Class"]):
#Isolate
X["Class"] == i
dframe["Pred_class"] == i
X_test_virtuale["BOOST"] = X_test_virtuale["ALG_N_forecast"] - dframe.iloc[0,0]
但它似乎不能正常工作 如果我理解正确,首先要合并:
X = X.merge(dframe, how='left', left_on='Class', right_on='Pred_class')
然后,您只需按常规添加:
X['Final_Q'] = X['Quantity'] + X['Delta']
这将为您带来:
Class Quantity Delta Pred_class Final_Q
0 0 1 -0.046348 0 0.953652
1 0 5 -0.046348 0 4.953652
2 1 6 1.856508 1 7.856508
3 2 8 20.347518 2 28.347518
4 3 9 -7.138728 3 1.861272
5 4 0 6.642686 4 6.642686
重命名
Pred\u类后,可以使用pandas merge\u asof,如下所示
dframe=dframe.rename(列={'Pred_class':'class'})
s=pd.merge\u asof(X,dframe,on='Class')
s['FinalQ']=s['Quantity']-s['Class']
索引数量类Delta FinalQ
0 1 0 -0.04 1
1 5 0 -0.04 5
2 6 1 1.90 5
3 8 2 20.30 6
4 9 3 -7.00 6
5 0 4 6.60 -4
它应该是“-X['Delta']”而不是“+”;其余的都很好用
Class Quantity Delta Pred_class Final_Q
0 0 1 -0.046348 0 0.953652
1 0 5 -0.046348 0 4.953652
2 1 6 1.856508 1 7.856508
3 2 8 20.347518 2 28.347518
4 3 9 -7.138728 3 1.861272
5 4 0 6.642686 4 6.642686