使用Pandas将季度日期索引数据框转换为日度TTM自由现金流数据框
Pandas 实现季度自由现金流转日度TTM方案
完全可以通过Pandas实现该转换,核心思路是先计算季度维度的滚动4期求和得到季度TTM值,再重采样到日度向前填充即可,具体实现步骤如下:
前置假设
你的原始季度数据框命名为df_qfcf,符合以下结构:
- 索引为
datetime64类型的季度末日期 - 包含1列存储季度自由现金流,列名为
q_fcf
完整实现代码
import pandas as pd # 1. 预处理:确保索引为日期格式,按日期升序排序 df_qfcf = df_qfcf.sort_index() df_qfcf.index = pd.to_datetime(df_qfcf.index) # 2. 计算季度维度的TTM(滚动4个季度求和) df_qfcf['ttm_fcf'] = df_qfcf['q_fcf'].rolling(4).sum() # 3. 重采样为日度频率,向前填充值 df_daily_ttm = df_qfcf['ttm_fcf'].asfreq('D', method='ffill') # 4. 截取从首次出现TTM值到今日的有效区间 df_daily_ttm = df_daily_ttm.loc[df_daily_ttm.first_valid_index(): pd.Timestamp.today().normalize()]
结果验证
按照你提供的示例数据计算:
- 2015-12-31是第4份报告日,计算得到的TTM值为
-105703000.0 + 131364000.0 + 68858000.0 -25890000.0 = 68629000.0 - 重采样后2016-01-01到2016-03-30之间的所有日期,都会自动沿用该值,和你的预期完全一致。
内容的提问来源于stack exchange,提问作者Pavel Ignatovich
相关产品推荐
相关产品推荐

