шпион - это столбец данных из 1 столбца изменений цены индекса S & P 500. Имя в одном столбце: «Доходность S & P500»
«g» - это 1-столбец данных с изменениями цены акций MSFT. Его столбец «Microsoft's Returns»
Используя метод df.columns.values, «spy» и «g» явно имеют только один столбец. У них также есть подобный индекс, но они не будут сливаться!
«g.index» возвращает следующее:
DateTimeIndex(['2005-01-03', '2005-01-04'....'2018-12-31'],
dtype='datetime64[ns]', name='Date', length=3523, freq=None)
«spy.index» возвращает следующее:
DatetimeIndex(['2005-01-03', '2005-01-04'...'2018-12-31'],
dtype='datetime64[ns]', name='Date', length=3523, freq=None)
Но при объединении «Microsoft»Возвращает »столбец становится заполненным NaN.
Есть идеи, что происходит? Ваша помощь очень ценится!
Вот как я пытался объединиться.
df_join = pd.concat([spy, g], ignore_index=False, sort=False)
Вот мой ввод:
#@title
import numpy as np
import pandas as pd
from datetime import datetime
import matplotlib.pyplot as plt
import statsmodels.api as sm
import pandas_datareader as pdr
import fix_yahoo_finance
from scipy import stats
# Set start and end date for stock prices
start_date = datetime(2005, 1, 1)
end_date = datetime(2019, 1, 1)
one_mon = pdr.DataReader('DGS1MO', 'fred', start_date, end_date)/100
rf = np.log(1+one_mon)/365
def load_stock_returns(ticker, name):
p = pdr.get_data_yahoo(ticker, start=start_date, end=end_date)
r = pd.DataFrame(p['Adj Close'] / p['Adj Close'].shift(1) - 1)
r.columns = [name]
return r
def plot_returns(r):
plt.figure(figsize=(15,5))
plt.plot(r)
plt.ylabel('Returns')
plt.legend(r.columns)
plt.grid()
plt.show()
spy = load_stock_returns('SPY', 'S&P500 Returns')
g = load_stock_returns('MSFT', "Microsoft Returns")
df_join = pd.concat([spy, g], ignore_index=False, axis=1, sort=False)