来自不同数据框的列的数学运算

时间:2016-08-05 17:17:31

标签: python-2.7 pandas jupyter-notebook pandas-datareader

我有两个数据框,通过Fama French和Yahoo的Pandas导入。我试图比较两个数据帧中的列值(更具体地说,从另一个数据帧中减去一个),但每当我尝试这样做时就会出现值错误。数据框有不同的索引,我不知道如何考虑这个因素(我对python和pandas很新)。

以下是相关代码:

start, end = dt.datetime.now()-dt.timedelta(days=60*30), dt.datetime.now()
f = data.DataReader('F-F_Research_Data_Factors', 'famafrench',  start, end)[0]
s = data.get_data_yahoo('aapl', start, end)
s = s.resample('M', how='last')
s['returns'] = s['Adj Close'].pct_change()

理想情况下,我想创建一个行值= f ['RF']的系列 - s ['return']

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

转换f.index

f.index = f.index.to_datetime() + pd.offsets.MonthEnd()

f['RF'] - s['returns']

答案 1 :(得分:-1)

问问自己,当两个矩阵的大小不同时,你怎么可能定义两个矩阵之间的差异?

首先要做的是匹配commmon值上的两个数据帧(比如日期)。然后您就可以进行任何想要的操作