我知道这可能很简单,但我一直在尝试解决这个问题,并且我需要它来完成很多功能。
我有一个包含 2 列的 DataFrame,均包含股价数据。
我想在一个名为“returns”的新数据框中计算 2 个新列,每个列的名称与第一个相同(即“AAPL”和“GOOG”)。
我使用此过程获取原始数据并创建“数据”数据框:
names = ['AAPL', 'GOOG']
def get_data(stock, start, end):
return web.get_data_yahoo(stock, start, end)['Adj Close']
data = pd.DataFrame({n: get_data(n, '1/1/2009', '6/1/2012') for n in names})
我知道可以使用(来自熊猫库)生成回报:
returns = pd.DataFrame(index=data.index)
returns['*COLUMN A*'] = data['*COLUMN A*'].pct_change()
但是我猜我需要使用某种循环来迭代“名称”或列,但我无法得到任何工作。
任何帮助将不胜感激。如果我说得含糊不清,我很抱歉,但这是我的第一个问题,我已经通过论坛搜索了 30 分钟 :)