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

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

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

import getFamaFrenchFactors as gff

df_ff3_monthly = gff.famaFrench3Factor(frequency='m') 
df_ff3_monthly['date_ff_factors'] = pd.to_datetime(df_ff3_monthly['date_ff_factors'])
df_ff3_monthly = df_ff3_monthly[df_ff3_monthly['date_ff_factors'] > '31-12-2020']
df_ff3_monthly.set_index('date_ff_factors', inplace=True)
df_ff3_quarterly = df_ff3_monthly.resample('Q').sum().cumsum()
df_ff3_quarterly
xghobddn

xghobddn1#

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

df_quarterly = df_ff3_monthly.add(1).cumprod().resample("Q").last().pct_change()

#Out[]: 
#                   Mkt-RF       SMB       HML        RF
#date_ff_factors                                        
#2021-03-31            NaN       NaN       NaN       NaN
#2021-06-30       0.081282 -0.018005 -0.022328  0.000000
#2021-09-30      -0.003373 -0.037145  0.030646  0.000000
#2021-12-31       0.082518 -0.052192  0.022916  0.000100
#2022-03-31      -0.056030 -0.053894  0.141307  0.000100
#2022-06-30      -0.173744 -0.011717  0.081960  0.001000
#2022-09-30      -0.044194  0.033851 -0.037546  0.004607
#2022-12-31       0.055603 -0.039705  0.109870  0.008524
#2023-03-31       0.065063  0.003491 -0.133761  0.010537
#2023-06-30       0.006100 -0.033400 -0.000300  0.003500

相关问题