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

Maths Operations on Columns from Different Data Frames

我有两个数据框,通过 Pandas 从 Fama French 和 Yahoo 导入。我正在尝试比较两个数据框中的列值(更具体地说,从另一个中减去一个),但是每当我尝试这样做时都会出现值错误。数据框有不同的索引,我不知道如何考虑这个因素(我对 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['returns']

的系列

如有任何帮助,我们将不胜感激。

问问自己,当两个矩阵的大小不同时,您如何定义它们之间的差异?

首先要做的是将两个数据帧匹配到一个共同的值(比如日期)。然后你就可以做你想做的任何操作了

转换f.index

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

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