Python 如何将dataframe日期时间列快速转换为Quanlib日期

Python 如何将dataframe日期时间列快速转换为Quanlib日期,python,dataframe,apply,python-datetime,quantlib,Python,Dataframe,Apply,Python Datetime,Quantlib,让我们假设datetime列之一,如下所示 PORT['ISSUE_DT'] 0 2019-01-31 1 2018-10-24 2 2018-11-16 3 2018-11-16 4 2018-11-16 如何快速将其转换为Quanlib日期? 我可以如下转换一个元素,有没有不使用“for”的方法 #数据 d=端口['ISSUE_DT'][0] #将datetime转换为qt日期 d_qt=日期(日、月、年) 我知道有像R这样的apply函数,但我不知道如何处理class属性的

让我们假设datetime列之一,如下所示

PORT['ISSUE_DT']
0 2019-01-31 1 2018-10-24 2 2018-11-16 3 2018-11-16 4 2018-11-16

如何快速将其转换为Quanlib日期? 我可以如下转换一个元素,有没有不使用“for”的方法

#数据
d=端口['ISSUE_DT'][0]
#将datetime转换为qt日期
d_qt=日期(日、月、年)

我知道有像R这样的apply函数,但我不知道如何处理class属性的apply

QuantLib Python有3种构造日期对象的方法:

  • ql.Date(serialNumber),其中序列号与excel相同
  • ql.Date(日、月、年)
  • ql.Date(日期字符串、格式字符串)
如果要转换整个柱,可以使用pandas中的apply方法,并使用您喜欢的构造方法

例如:

PORT.ISSUE\u DT=PORT.ISSUE\u DT.astype(str).apply(lambda d:ql.Date(d,'%Y-%m-%d'))


这将把列从strings转换为ql.Date

谢谢@David Durate。它起作用了。我在尝试一些愚蠢的非工作的东西,比如下面的
python dd=lambda x:x.day mm=lambda x:x.month yy=lambda x:x.year apply(日期,端口['ISSUE\u DT'].apply(dd),端口['ISSUE\u DT'].apply(mm),yy=lambda x:x.year)