Я застреваю при попытке удалить первую строку из матрицы log_returns
. По сути, я хотел бы избавиться от первой строки, потому что она имеет значения NaN. Я пробовал isnan()
без радости и, наконец, приземлился на метод numpy.delete()
, который звучит наиболее перспективно, но до сих пор не достигает цели.Невозможно удалить первую строку в матрице
import pandas as pd
from pandas_datareader import data as web
import numpy as np
symbols = ['XOM', 'CVX', 'SLB', 'PXD', 'EOG', 'OXY', 'HAL', 'KMI', 'SE', 'PSX', 'VLO','COP','APC','TSO','WMB','BHI','APA','COG','DVN','MPC','NBL','CXO','NOV','HES','MRO','EQT','XEC','FTI','RRC','OKE','SWN','NFX','HP','MUR','CHK','RIG','DO']
try:
h9 = pd.HDFStore('port.h9')
data = h9['norm']
h9.close()
except:
data = pd.DataFrame()
for sym in symbols:
data[sym] = web.DataReader(sym, data_source='yahoo',
start='1/1/2010')['Adj Close']
data = data.dropna()
h9 = pd.HDFStore('port.h9')
h9['norm'] = data
h9.close()
data.info()
log_returns = np.log(data/data.shift(1))
log_returns.head()
np.delete(log_returns, 0, 0)
В последней строке (удалить) выше выдает следующее исключение, которое не имеет смысла, как row = 0
, location = 0
, безусловно, не из объема log_returns
матрицы, которая имеет форму (1116,37).
ValueError: Shape of passed values is (37, 1115), indices imply (37, 1116)
О нас: 'log_returns = log_returns.iloc [1:]'? – MaxU
Второй аргумент ['np.delete()'] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.delete.html), вероятно, не так, как вы думаете. Если вам просто нужно выбросить первую строку, предложение @ MaxU - это путь. Кроме того, 'np.nan! = Np.nan' сделает работу' np.delete' еще сложнее. –
MaxU - метод iloc работал с удовольствием! Большое спасибо. Также спасибо Андрасу за ваш ответ. – skafetaur