Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在日期上循环函数- Python

在日期上循环函数- Python
EN

Stack Overflow用户
提问于 2021-03-31 07:02:02
回答 1查看 84关注 0票数 0

我不是最精通Python的人,所以为任何可怕的代码道歉。

我有一个csv文件,包含每日现货率不同的libor曲线,不同的男高音。我有两个函数,第一个函数在某个日期取一个libor曲线的即期汇率,第二个函数从第一个函数中提取这些利率,并计算远期利率:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def importdata (fileloc, date, name, max_maturity=None):
    'Imports data from a given location, date and name'
    data = pd.read_csv(fileloc) # file location 
    data = data[ (data['date']) == date] # getting the date of the curve
    data =  data.loc[:, data.columns.str.startswith(name)] # getting the curve wanted at the date
    data = data.T # Transposing the data
    data = data.reset_index()
    data.columns = ['maturity','spot rate'] # renaming columns
    data['maturity'] = data.maturity.str.rsplit(n=1).str[-1]
    if max_maturity:
        data = data.iloc[:data.loc[data.maturity.str.contains(max_maturity,na=False)].index[0]+1]
    return data


def interpolate (dataframe, TENOR, freq):

    'Gets the forward rates from given tenors (X) and corresponding spot rates (Y)'
    
    terms= dataframe["maturity"].tolist()
    rates= dataframe['spot rate'].tolist() 
    
    dc = ql.Actual360()
    settlement_days = 0
    if Curve =='3M USD' or Curve == '6M EUR' or Curve == '6M GBP': 
        
        helpers = []

        for term, r in zip(terms, rates):
            if Curve == '3M USD': 
                swapIndex = ql.UsdLiborSwapIsdaFixAm(ql.Period((term)))
                helpers.append(ql.SwapRateHelper(r/100, swapIndex))
            elif Curve == '6M EUR':
                swapIndex = ql.EuriborSwapIsdaFixB(ql.Period((term)))
                helpers.append(ql.SwapRateHelper(r/100, swapIndex))
            elif Curve == '6M GBP': 
                #swapIndex = ql.SwapIndex('GBP Libor', ql.Period(term), settlement_days, ql.GBPCurrency(), ql.UnitedKingdom(), ql.Period('6M'), ql.Following, dc, ql.GBPLibor)
                swapIndex = ql.GbpLiborSwapIsdaFix(ql.Period((term)))
                helpers.append(ql.SwapRateHelper(r/100, swapIndex))
            
    elif Curve == 'EONIA' or Curve =='SONIA' or Curve =='FF':
       
        OIS_helpers = []
        
        if Curve == 'EONIA': 
            calendar = ql.TARGET()
            EONIA = ql.OvernightIndex("EONIA", settlement_days, ql.EURCurrency(), calendar, dc)
           
            for i in range(len(terms)):
                tenor = ql.Period(terms[i])
                rate = rates[i]
                OIS_helpers.append(ql.OISRateHelper(settlement_days, tenor, ql.QuoteHandle(ql.SimpleQuote(rate/100)), EONIA)) 
           
        elif Curve =='SONIA': 
            calendar = ql.UnitedKingdom()
            SONIA = ql.OvernightIndex("SONIA", settlement_days, ql.GBPCurrency(), calendar, dc)
            
            for i in range(len(terms)):
                tenor = ql.Period(terms[i])
                rate = rates[i]
                OIS_helpers.append(ql.OISRateHelper(settlement_days, tenor, ql.QuoteHandle(ql.SimpleQuote(rate/100)), SONIA)) 
                    
        elif Curve == 'FF': 
            calendar = ql.UnitedStates()
            FedF = ql.OvernightIndex("FedF", settlement_days, ql.USDCurrency(), calendar, dc)
            
            for i in range(len(terms)):
                tenor = ql.Period(terms[i])
                rate = rates[i]
                OIS_helpers.append(ql.OISRateHelper(settlement_days, tenor, ql.QuoteHandle(ql.SimpleQuote(rate/100)), FedF)) 
         
        helpers = OIS_helpers
    
    curve = ql.PiecewiseSplineCubicDiscount(0, ql.TARGET(), helpers, dc)
    curve.enableExtrapolation()                                                                           
    
    days = ql.MakeSchedule(curve.referenceDate(), curve.maxDate() , ql.Period(freq)) #Frequency
    
    if Curve == '3M USD' or Curve =='FF':
        fwds = [
            curve.forwardRate(d, ql.UnitedStates().advance(d,ql.Period(TENOR)), dc, ql.Simple).rate()*100
            for d in days
        ]
   
    elif Curve =='6M EUR' or Curve == 'EONIA': 
        fwds = [
            curve.forwardRate(d, ql.TARGET().advance(d,ql.Period(TENOR)), dc, ql.Simple).rate()*100 
            for d in days
        ]
    
    elif Curve =='6M GBP' or Curve == 'SONIA':
        fwds = [
            curve.forwardRate(d, ql.UnitedKingdom().advance(d,ql.Period(TENOR)), dc, ql.Simple).rate()*100
            for d in days
        ]
  
    fwdsdic = {Date:fwds}
    fwdcomp = pd.DataFrame(fwdsdic)
 
    ALL_FWD = fwdcomp.to_csv('1y1y.csv', header = '1y1y')     
    
    return fwdcomp;

data的一个例子,它是interpolate的输入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    maturity    spot rate
0   1Y  0.105
1   18M 0.19
2   2Y  0.265
3   3Y  0.41100000000000003
4   4Y  0.542
5   5Y  0.655
6   6Y  0.7509999999999999
7   7Y  0.833
8   8Y  0.904
9   9Y  0.966
10  10Y 1.021
11  12Y 1.093
12  15Y 1.157
13  20Y 1.182
14  25Y 1.18
15  30Y 1.162
16  40Y 1.073
17  50Y 1.01

我想要做的是为一条曲线计算这些转发率,但是对于CSV文件中的所有日期,然后将这些速率保存到一个新的csv文件中。到目前为止,我所做的是将整个CSV文件导入到熊猫中,然后为所有日期创建一个for循环:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
AllDate = all_data['date']
for dt in AllDate.iteritems():
    data = importdata(locationAll, dt, Curve)
    interpolate(data, '1y', '1y')

我知道这个错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ValueError: Length mismatch: Expected axis has 1 elements, new values have 2 elements

我不知道我哪里出了问题,任何帮助都是非常感激的。

编辑:

我已经将for循环更改为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
AllDate = all_data['date']
for dt in AllDate.iterrows():
    data = importdata(location, dt, Curve)
    interpolate(data, '1y', '1y')

我得到以下错误消息:

AttributeError:“串联”对象没有属性“迭代行”

这是我的输入文件的图片,如果有帮助的话:

在这里输入图像描述

EN

回答 1

Stack Overflow用户

发布于 2021-03-31 07:09:22

你所犯的错误说明出了什么问题。pandas.DataFrame.interitems()返回两个值(label和content),但是您只给它一个变量dt来写入它。

您可以阅读医生来了作为一个示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66890358

复制
相关文章
Swift 中的属性包装器
当处理代表某种状态形式的属性时,通常会在每次修改值时触发某种关联的逻辑。例如,我们可以根据一组规则验证每个新值,可以以某种方式转换分配的值,或者每当值更改时都可以通知一组观察者。
韦弦zhy
2021/04/08
2.7K0
Owl项目
不久的将来是物联网。也就是说,不仅在地理上最大程度地覆盖了全球网络,而且还渗透到了生活的各个领域。包括我们的房屋在内,几乎所有家用电器中都有。这就需要进一步开发带有设备的收发器网络。
云深无际
2020/08/12
1.5K0
Owl项目
bootstrap carousel 轮播
<!doctype html> <html> <head> <meta charset="utf-8"> <title>联想控股</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="css/bootstrap.css" rel="stylesheet" type="text/css"> <script src="http://code.jquery.com/jquery.js"></script> <script src="js/bootstrap.js"></script> </head> <body> <div id="myCarousel" class="carousel slide"> <ol class="carousel-indicators"> <li data-target="#myCarousel" data-slide-to="0" class="active"></li> <li data-target="#myCarousel" data-slide-to="1"></li> <li data-target="#myCarousel" data-slide-to="2"></li> </ol> <div class="carousel-inner"> <div class="item active"> <img src="/wp-content/uploads/2014/07/slide1.png" alt="First slide"> <div class="carousel-caption">标题 1</div> </div> <div class="item"> <img src="/wp-content/uploads/2014/07/slide2.png" alt="Second slide"> <div class="carousel-caption">标题 2</div> </div> <div class="item"> <img src="/wp-content/uploads/2014/07/slide3.png" alt="Third slide"> <div class="carousel-caption">标题 3</div> </div> </div> <a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev"> <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a> <a class="right carousel-control" href="#myCarousel" role="button" data-slide="next"> <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div> </body> </html>
用户5760343
2019/07/07
9100
【OWL】:Web Ontology Language
The W3C OWL 2 Web Ontology Language (OWL) is a Semantic Web language designed to represent rich and complex knowledge about things, groups of things, and relations between things. OWL is a computational logic-based language such that knowledge expressed in OWL can be reasoned with by computer programs either to verify the consistency of that knowledge or to make implicit knowledge explicit. OWL documents, known as ontologies, can be published in the World Wide Web and may refer to or be referred from other OWL ontologies. OWL is part of the W3C's Semantic Web technology stack, which includes RDF [RDF Concepts] and SPARQL [SPARQL].
WEBJ2EE
2021/09/24
1.7K1
【OWL】:Web Ontology Language
Java-包装器类
所有的基本类型都有一个与之对应的类,这些类称为包装器类。对象包装器类是不可改变的,即一旦构造类包装器类,就不允许更改包装在其中的值。同时,对象包装器类还是final,因此不能定义它们的子类。
用户7886150
2021/02/02
5920
java中的包装类
  通过查看源码或API文档,我们可以知道包装类再java.lang包下,而且所有包装类都是final修饰的,即不能被继承。里面维护的基本数据类型的变量value,也是final修饰的,不能更改,即一旦创建对象,其内容就不能修改。包装类主要分为三种不同类型:数值类型(Byte、Short、Integer、Long、Float和Double)、Character类型、Boolean类型。
别团等shy哥发育
2023/02/25
1K0
java中的包装类
【C++11】 包装器 | bind
function包装器 也被叫做 适配器 C++11中function本质是类模板,也是一个包装器
lovevivi
2023/10/17
2550
【C++11】 包装器 | bind
20款移动开发中很有用的 jQuery 插件
在开发任何移动项目时,要尽可能保持每一种资源尺寸都尽可能的小,以给最终用户提供一个好的体验是非常重要的。在这篇文章中我们已经编制了今年新出炉的 jQuery 移动插件列表,收集了滑块,旋转木马,画廊,
用户1667431
2018/04/18
2.3K0
20款移动开发中很有用的 jQuery 插件
bootstrap源码分析之Carousel
源码文件: Carousel.scss Carousel.js 实现原理: 隐藏所有要显示的元素,然后指定当前要显示的为block,宽、高自适应 源码分析: 1、Html结构:主要分为以四个部分   1.1、容器:最外层div,需要一个data-ride=”carousel”来指定为轮播放插件,并且提供一个Id,方便圆圈指示符的关联   1.2、图片列表部分,用一个外层div包裹所有,然后每个img会被一个div,则class为item的包裹住   1.3、圆圈指示符:用一个ol列表来显示其各图形列表项,
sam dragon
2018/01/17
2K0
bootstrap源码分析之Carousel
优化算法——OWL-QN
一、正则化(Regularization) 1、正则化的作用     在机器学习中,正则化是相对于过拟合出现的一种特征选择的方法。在机器学习算法中使用的Loss项为最小化误差,而最小化误差是为了让我们
felixzhao
2018/03/19
1.6K0
优化算法——OWL-QN
C++11 包装器function
C++提供了多个包装器,它们主要是为了给其他编程接口提供更一致或更合适的接口。C++11提供了多个包装器,这里我们重点了解一下包装器function。
艰默
2023/02/26
6780
C++11 包装器function
优化算法——OWL-QN
    在机器学习中,正则化是相对于过拟合出现的一种特征选择的方法。在机器学习算法中使用的Loss项为最小化误差,而最小化误差是为了让我们的模型拟合我们的训练数据,此时,若参数过分拟合我们的训练数据就会形成过拟合的问题,而规则化参数的目的就是为看防止我们的模型过分拟合我们的训练数据。此时,我们会在Loss项之后加上正则项以约束模型中的参数:
felixzhao
2019/02/13
1.1K0
排名Top6的轮播组件,让你眼前一亮的选择!
上周公司的一个项目中有用到了轮播的功能。于是收集和总结了一些常用的轮播/走马灯组件库。这里分享给大家。
程序员老鱼
2023/08/10
1.8K0
排名Top6的轮播组件,让你眼前一亮的选择!
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。
AiDBA宝典
2019/09/30
28.8K0
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
获取包装异常中真实异常
没有弄清对方的底细,绝不能掏出你的心来——巴尔扎克 重复调用getCause即可 package io.github.vampireachao.stream.core.lambda; /** * LambdaInvokeException * * @author VampireAchao ZVerify * @since 2022/9/4 */ public class LambdaInvokeException extends RuntimeException { /**
阿超
2022/10/31
6440
New UWP Community Toolkit - Carousel
概述 New UWP Community Toolkit  V2.2.0 的版本发布日志中提到了 Carousel 的调整,本篇我们结合代码详细讲解  Carousel 的实现。 Carousel 是一种传送带形态的控件,在图片展示类的应用中有非常多的应用,它拥有很好的流畅度,可以做很多的自定义,并集成了鼠标,触摸板,键盘等的操作。我们来看一下官方的介绍和官网示例中的展示: The Carousel control provides a new control, inherited from the It
Shao Meng
2018/04/28
1.4K0
New UWP Community Toolkit - Carousel
解构 Solidity 合约 #3:函数包装器
号外,今天我们的登链社区网站做了一点小更新, 作者们可以关联自己的社交账号,关联后,在文章右侧的作者区域就可以看到点亮的小图标,让更多的小伙伴通过内容交朋友,也欢迎大家关注登链社区的账号。
Tiny熊
2023/01/09
6600
解构 Solidity 合约 #3:函数包装器
点击加载更多

相似问题

更改owl-carousel包装类?

18

如何在React owl Carousel中使用Owl carousel选项?

28

如何在Owl carousel中显示多个项目?

291

Owl Carousel返回错误

32

OWL Carousel无函数

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文