在计算某些金融工具的到期日时,通常我们需要做的只是以下几点:
Trade Date RIC
5/22/1989 SPH0
5/23/1989 SPH0
5/24/1989 SPH0
5/25/1989 SPH0
5/26/1989 SPH0
如果交易日期是工具的交易日,那么RIC是4个字母的字符串,其中包括:
First 2 characters = an asset class
3rd character = expiration month
last character = last digit of expiration year
到期月份说明:
month_codes_to_int = {'F':'1', 'G':'2', 'H':'3', 'J':'4', 'K':'5', 'M':'6',
'N':'7', 'Q':'8', 'U':'9', 'V':'10', 'X':'11', 'Z':'12'}
我通过使用交易日期和RIC为每一行生成一个到期年...我这样做是通过遍历DF并每次使用将正确计算到期日期的函数填充列中的空白单元格来实现的。
for index, row in df.iterrows():
row['Trade Date'] = pd.to_datetime(row['Trade Date'])
print(row['Trade Date'], row['RIC'])
current_year = row['Trade Date'].year
asset_class = row['RIC'].split[0:3]
expiration_month = row['RIC'][2]
expiration_year_last_digit = row['RIC'][3]
expiration_year =
我的方法是让到期日期是与当前日期相距最近的月份和年份,因此,以1989年5月22日为例,该日期应为1990年3月15日(日期无关紧要,1990年为最接近的日期)年份从0到1989年结束)。
有没有一种方法可以使用pandas datetime功能自动执行此操作?
绝地无双
相关分类