pandas 将法玛-法国因素转变为季度而不是月度回报的方法

xuo3flqw  于 2023-06-20  发布在  其他
关注(0)|答案(1)|浏览(120)

我正在努力创建季度法马法国因素。我使用getFamaFrenchFactors包每月下载因子,但我不知道如何将它们转化为季度数据点。
我试着把它们累加起来,但最后产生了非常大的因素。这是我的代码:

  1. import getFamaFrenchFactors as gff
  2. df_ff3_monthly = gff.famaFrench3Factor(frequency='m')
  3. df_ff3_monthly['date_ff_factors'] = pd.to_datetime(df_ff3_monthly['date_ff_factors'])
  4. df_ff3_monthly = df_ff3_monthly[df_ff3_monthly['date_ff_factors'] > '31-12-2020']
  5. df_ff3_monthly.set_index('date_ff_factors', inplace=True)
  6. df_ff3_quarterly = df_ff3_monthly.resample('Q').sum().cumsum()
  7. df_ff3_quarterly
xghobddn

xghobddn1#

您可以计算累计回报,然后返回到季度:

  1. df_quarterly = df_ff3_monthly.add(1).cumprod().resample("Q").last().pct_change()
  2. #Out[]:
  3. # Mkt-RF SMB HML RF
  4. #date_ff_factors
  5. #2021-03-31 NaN NaN NaN NaN
  6. #2021-06-30 0.081282 -0.018005 -0.022328 0.000000
  7. #2021-09-30 -0.003373 -0.037145 0.030646 0.000000
  8. #2021-12-31 0.082518 -0.052192 0.022916 0.000100
  9. #2022-03-31 -0.056030 -0.053894 0.141307 0.000100
  10. #2022-06-30 -0.173744 -0.011717 0.081960 0.001000
  11. #2022-09-30 -0.044194 0.033851 -0.037546 0.004607
  12. #2022-12-31 0.055603 -0.039705 0.109870 0.008524
  13. #2023-03-31 0.065063 0.003491 -0.133761 0.010537
  14. #2023-06-30 0.006100 -0.033400 -0.000300 0.003500

相关问题