【发布时间】:2019-01-02 18:42:44
【问题描述】:
如何在数据框中添加子列?
这是我目前所拥有的......
start_date = datetime.today() - timedelta(days=252)
end_date = datetime.today()
stock_list = ['TSLA', 'XOM', 'AAPL']
data = iex.stocks.get_historical_data(stock_list, start_date, end_date, filter=['close'], output_format='pandas')
print(data.head())
data['TSLA']['sma50'] = data['TSLA']['close'].rolling(50).mean()
我收到此错误: 试图在 DataFrame 中的切片副本上设置一个值。 尝试改用 .loc[row_indexer,col_indexer] = value
这是数据:
TSLA XOM AAPL
open high low close volume open high low close volume open high low close volume
date
2018-04-25 283.50 285.16 277.25 280.690 4013574 75.8561 77.2335 75.1625 77.1171 13865599 160.8679 163.6377 160.6602 161.8868 28382084
2018-04-26 278.75 285.79 276.50 285.480 4356013 77.2141 78.4751 77.1462 78.4363 14554442 162.3518 163.9444 161.6098 162.4507 27963014
2018-04-27 285.37 294.47 283.83 294.075 4364626 74.6435 76.2926 74.1876 75.4584 16346833 162.2330 162.5595 158.8994 160.5711 35655839
2018-04-30 293.61 298.73 292.50 293.900 4228172 75.5748 76.2053 75.4099 75.4196 15028835 160.3834 165.4579 160.0963 163.4795 42427424
2018-05-01 293.51 300.82 293.22 299.920 4625603 74.9443 74.9443 73.7026 74.6435 16231035 164.6173 167.3770 163.4894 167.2781 53569376
希望输出
TSLA XOM AAPL
open high low close volume sma50 open high low close volume sma50 open high low close volume sma50
【问题讨论】:
-
在每一列 (TSLA, XOM, AAPL) 我想为每一列添加一个子列 (sma50) putput: (open, high, low, close, volume, sma50)
-
实际数据框?