微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据某些条件,用来自另一个数据框的数据填充大熊猫数据框

如何解决根据某些条件,用来自另一个数据框的数据填充大熊猫数据框

我有一个名为“ optns”的熊猫数据框,其中包含有关S&P500期权的信息,并带有3列:“日期”,“最佳报价”,“货币行情”。我创建了一个新的数据框“价格”,其中有8列,代表“ Money Ticker”的不同值。我想用相应日期的“最佳报价”值填充此数据框。我写了一个代码,但是它远远不够有效,甚至可能是错误的:

for j in range(0,price.shape[0]):
    for i in range(0,optns.shape[0]):
        if (price.loc[j,'Date']==optns.loc[i,'Date']) and (optns.loc[i,'Money Ticker']== 'Call OTM 10%'):
            price.loc[j,'Call OTM 10%']=optns.loc[i,'best_offer']
        if (price.loc[j,'Money Ticker']== 'Call OTM 7%'):
            price.loc[j,'Call OTM 7%']=optns.loc[i,'Money Ticker']== 'Call OTM 5%'):
            price.loc[j,'Call OTM 5%']=optns.loc[i,'Money Ticker']== 'Call ATM'):
            price.loc[j,'Call ATM']=optns.loc[i,'Money Ticker']== 'Put ATM'):
            price.loc[j,'ATM']=optns.loc[i,'Money Ticker']== 'Put OTM 5%'):
            price.loc[j,'Put OTM 5%']=optns.loc[i,'Money Ticker']== 'Put OTM 7%'):
            price.loc[j,'Put OTM 7%']=optns.loc[i,'Money Ticker']== 'Put OTM 10%'):
            price.loc[j,'Put OTM 10%']=optns.loc[i,'best_offer']

我该怎么做?谢谢!

解决方法

我相信您要寻找的是pd.pivot_table。 我不确定我是否能完全理解您的数据框,但是如果知道了,这应该可以解决您的问题:

pd.pivot_table(optns,columns="Money Ticker",values="Best Offer",index="Date")

您可以查看链接的文档以获取更多信息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。