【发布时间】:2020-06-02 10:44:35
【问题描述】:
我在 pandas DataFrame 中有一个日期列,它显示了未来合同到期的日期。我需要使用该信息来创建一个新列,其名称是我的回测人员接受的。我需要的格式是:
metadata['backtester_name'] = 'NF' + month_code + 2_digit_year
我知道如何获取month_code,我需要帮助来弄清楚如何获取本专栏的2_digit_year。
这是过期列的样子,默认情况下它被格式化为一个对象:
expiry
2009-01-29
2010-01-28
2011-01-27
这是我正在玩弄的公式:
metadata['backtesting_name'] = 'NF' + pd.DatetimeIndex(metadata['expiry']).month.map(month_code) + str(pd.to_datetime(metadata['expiry']))[2:]
我的问题是年份没有被正确捕获,它返回了某种系列:
backtesting_name
0 NFF0 2009-01-29\n1 2010-01-28\n2 2...
1 NFF0 2009-01-29\n1 2010-01-28\n2 2...
2 NFF0 2009-01-29\n1 2010-01-28\n2 2...
3 NFF0 2009-01-29\n1 2010-01-28\n2 2...
4 NFF0 2009-01-29\n1 2010-01-28\n2 2...
您的帮助将不胜感激,如果我需要分享任何其他信息,请告诉我。
【问题讨论】:
标签: python-3.x pandas datetime