选择要在 pandas 中平均的列(同时排除一个)
Picking columns to average in pandas (while excluding one)
我正在尝试将股票的平均值 returns 与基准进行比较,到目前为止我的代码如下所示:
index = ['^GSPC']
tickers = ['CAT','AAPL']
stocks = tickers + index
start = dt.datetime(2017,1,1)
end = dt.datetime(2017,6,30)
def excess_movement_plot(stocks):
f = web.get_data_yahoo(tickers,start,end)
cleanData = f.loc['Adj Close']
dataFrame = pd.DataFrame(cleanData)
stock_return = dataFrame.pct_change()
return plt.plot(stock_return[stocks])
截至目前,图表显示了三条线,但我希望它只显示 2 - 代码(AAPL 和 CAT)和标准普尔 (^GSPC) 的平均值
我试过这两个,但收效甚微。
stock_return[['AAPL', 'CAT']].mean(axis=0)
stock_return.merge('AAPL', 'CAT')
我认为你应该使用 axis=1
,而不是 0
。
df['Average'] = df[['B', 'C']].mean(axis=1)
df.head()
A B C Average
0 0.622956 -1.268788 0.160945 -0.553922
1 0.934346 -0.218623 -1.431491 -0.825057
2 0.311257 1.804876 1.791297 1.798086
3 1.264148 0.811027 0.229493 0.520260
4 -0.468134 -2.323339 0.151989 -1.085675
我正在尝试将股票的平均值 returns 与基准进行比较,到目前为止我的代码如下所示:
index = ['^GSPC']
tickers = ['CAT','AAPL']
stocks = tickers + index
start = dt.datetime(2017,1,1)
end = dt.datetime(2017,6,30)
def excess_movement_plot(stocks):
f = web.get_data_yahoo(tickers,start,end)
cleanData = f.loc['Adj Close']
dataFrame = pd.DataFrame(cleanData)
stock_return = dataFrame.pct_change()
return plt.plot(stock_return[stocks])
截至目前,图表显示了三条线,但我希望它只显示 2 - 代码(AAPL 和 CAT)和标准普尔 (^GSPC) 的平均值
我试过这两个,但收效甚微。
stock_return[['AAPL', 'CAT']].mean(axis=0)
stock_return.merge('AAPL', 'CAT')
我认为你应该使用 axis=1
,而不是 0
。
df['Average'] = df[['B', 'C']].mean(axis=1)
df.head()
A B C Average
0 0.622956 -1.268788 0.160945 -0.553922
1 0.934346 -0.218623 -1.431491 -0.825057
2 0.311257 1.804876 1.791297 1.798086
3 1.264148 0.811027 0.229493 0.520260
4 -0.468134 -2.323339 0.151989 -1.085675