来自不同数据帧的列的数学运算
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']
我有两个数据框,通过 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']