【发布时间】:2019-04-30 03:32:04
【问题描述】:
我是 Pandas 世界的新手,我正在尝试找出构建数据框的最佳实践,以便在金融时间序列上进行各种时间计算。
我目前正在导入定价时间序列,如下所示:
data_frames = { }
START_DATE = '2000-01-01'
TICKERS = [ 'SPY', 'VWO', 'TLT']
for ticker in TICKERS:
data_frames[ticker] = pdr.get_data_tiingo( ticker, start = START_DATE, api_key='xxxxxxxx' )
导入后,data_frames['SPY'] 的前几列如下所示:
adjClose adjHigh adjLow adjOpen adjVolume \
symbol date
SPY 2000-01-03 101.407597 103.368638 100.318130 103.368638 8164300
2000-01-04 97.441937 100.448866 97.365652 100.078415 8089800
2000-01-05 97.616251 98.683897 95.698789 97.572673 12177900
2000-01-06 96.047419 98.662140 96.047419 97.354779 6227200
如果我想然后执行比较时间序列的计算,推荐的方法是组合三个代码的时间序列。我的第一个想法是我应该将数据框与
连接起来dfs_concat = pd.concat( [data_frames['SPY'], data_frames['VWO'], data_frames['TLT']] )
然后使用apply函数
dfs_concat.apply( some_cross_asset_calculation_here, axis = 1 )
但在 some_cross_asset_calculation_here( ) 中,我可以访问一个代码的数据框行,但不能访问其他代码。
我想我可以在一个数据框中为每个代码创建列,这样我就有了诸如 SPY_adjClose、SPY_adjOpen、TLT_adjClose、TLT_adjOpen 之类的列。但这感觉不太对。
感觉我一定是错过了如何最好地处理数据的明显方法。
提前致谢!
【问题讨论】:
-
pdr 未在您的代码中定义。你能定义它吗?
-
@anon01 我猜那是熊猫数据阅读器
-
尝试一次将所有股票代码放入列表中。 df = pdr.get_data_tiingo(TICKERS, start = START_DATE, api_key='xxxxxxxx')
标签: pandas