[英]Pandas: how to iterate through two different dataframes
我有两个数据框:df_b:
Bin A B C Proba-a Proba-b Proba-c gamma
CPB%
0.00000 0 57 1728 1.000000 0.996368 0.926577 0.00000
0.00100 0 1579 1240 1.000000 0.895743 0.873890 0.00100
0.00200 1360 488 869 0.869532 0.864644 0.836966 0.00200
dfspread:
spread Bin
0 0.000001 A
1 0.000002 A
2 0.000003 A
3 0.000004 A
4 0.000005 B
5 0.000006 B
我需要做的是使用df_b的输入遍历dfspread ['spread']。 我还必须计算公式。 到目前为止,我尝试了以下内容:
f= 0.00000001
max_exp = []
for index, row in dfspread.iterrows():
for index,row in df_b.iterrows():
exp = row['Proba-a']*(row['gamma']*row['spread']*(1+f)-(f+f))
max_exp.append(float(exp))
但这行不通! 有什么想法吗? 谢谢!
这样行吗?
我也使用_
抑制了index
,因为您不需要它
f= 0.00000001
max_exp = []
for _, row1 in dfspread.iterrows():
for _,row2 in df_b.iterrows():
exp = row2['Proba-a']*(row2['gamma']*row1['spread']*(1+f)-(f+f))
max_exp.append(float(exp))
试试这个我的朋友:
# Spread values to an array
spread_values = [row['spread'] for index, row in dfspread.iterrows()]
f= 0.00000001
max_exp = []
for index,row in df_b.iterrows():
for spread in spread_values:
exp = row['Proba-a']*(row['gamma']*spread*(1+f)-(f+f))
max_exp.append(float(exp))
print(max_exp)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.