python - 减去特定的日期时间对象
问题描述
我需要通过查找“成熟度”和“trd_exctn_dt”之间的差异来计算“到期时间”,如下所示。
如果我有以下示例数据:
cusip_id | trd_exctn_dt | 到期 | time_to_maturity |
---|---|---|---|
0007TAA2 | 2015-01-26 | 2023-05-15 | 3031天 |
0007TAA2 | 2015-03-26 | 2023-05-15 | 2972天 |
0007TAA2 | 2015-05-01 | 2023-05-15 | 2936天 |
0007TAA2 | 2015-07-27 | 2023-05-15 | 2849天 |
我想要的输出是:
cusip_id | trd_exctn_dt | 到期 | time_to_maturity |
---|---|---|---|
0007TAA2 | 2015-05-01 | 2023-05-15 | 2936天 |
对于这个特定的cusip_id,因为到期日在第5个月,所以我正在寻找第5个月的trd_exctn_dt,以便计算到期时间。但是,我想为几个债券发行这样做,其中“到期”不一定会在第 5 个月内发生。例如,对于另一个债券发行,到期日可能是 2023 年 11 月 6 日,因此我将在第 11 个月寻找该债券发行的 trd_exctn_dt。
任何关于我将如何做到这一点的想法将不胜感激!
解决方案
此解决方案假定您想要maturity
月份等于trd_exctn_dt
月份的每一行。
代码
df.columns = [c.strip() for c in df.columns] # Remove whitespace from column names
# Convert to datetime
df['trd_exctn_dt'] = pd.to_datetime(df['trd_exctn_dt'])
df['maturity'] = pd.to_datetime(df['maturity'])
df['time_to_maturity'] = df['maturity'] - df['trd_exctn_dt'] # If you need to recalculate
df[df['trd_exctn_dt'].dt.month == df['maturity'].dt.month] # Filter for same month in both columns
输出
cusip_id trd_exctn_dt maturity time_to_maturity
2 0007TAA2 2015-05-01 2023-05-15 2936 days
推荐阅读
- java - 如何以正确的方式创建对象数组?
- docker - 如何 curl 部署在 Kubernetes 上的容器?
- rest - Yii2将邮递员请求重定向到api rest中的不同路由
- android - 如何在Android中通过Realm过滤时清除特定查询的RealmResults <>?
- postgresql - 添加新用户 Spring-Boot / Postman 的问题
- ionic-framework - 改变离子范围内的刻度高度
- apache-poi - POI 4.1.1 setCellFormula 未显示最终值
- r - 如何绘制具有 3 个变量的条形图?
- r - 有没有使用条件过滤和删除单个行的好方法?
- r - 计算 1 df 中的坐标向量与其他 df 中的单个坐标之间的距离