繁体   English   中英

熊猫:如何遍历两个不同的数据框

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM