You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求到期日早于指定日期X的债券组合面值占比

计算到期日早于指定日期的债券组合占比

计算逻辑

  • 筛选出到期日早于目标日期X的债券,求和其面值总和(记为sum_selected)
  • 计算所有债券的面值总和(记为sum_total)
  • 占比计算公式:(sum_selected / sum_total) * 100,结果保留两位小数即为百分比数值

示例计算(目标日期:2024-06-30)

给定债券数据:

maturity_datebond_face_value
2022-07-1524.76
2022-11-2126.5
2023-07-1534.19
2023-11-2135.99
2024-07-1540.7
2024-11-2140.8
  1. 筛选到期日早于2024-06-30的债券,面值总和:24.76 + 26.5 + 34.19 + 35.99 = 121.44
  2. 所有债券面值总和:24.76 + 26.5 + 34.19 + 35.99 + 40.7 + 40.8 = 202.94
  3. 占比计算:(121.44 / 202.94) * 100 ≈ 59.84%

通用实现方式

Excel公式实现

假设债券数据在A:A(到期日)和B:B(面值)列,目标日期放在D1单元格,使用以下公式即可直接得到占比:

=SUMIF(A:A,"<"&D1,B:B)/SUM(B:B)*100

设置单元格格式为「百分比」并保留两位小数即可。

Python(Pandas)实现

适合批量或动态数据场景:

import pandas as pd

# 加载债券数据
bond_data = pd.DataFrame({
    'maturity_date': pd.to_datetime(['2022-07-15', '2022-11-21', '2023-07-15', '2023-11-21', '2024-07-15', '2024-11-21']),
    'bond_face_value': [24.76, 26.5, 34.19, 35.99, 40.7, 40.8]
})

# 定义目标日期
target_date = pd.to_datetime('2024-06-30')

# 计算占比
selected_sum = bond_data[bond_data['maturity_date'] < target_date]['bond_face_value'].sum()
total_sum = bond_data['bond_face_value'].sum()
ratio = round((selected_sum / total_sum) * 100, 2)

print(f"占比:{ratio}%")

运行后输出:占比:59.84%

内容的提问来源于stack exchange,提问作者Renegade_rm56

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 00:39:17