1
试图从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方法工作得很好!非常感谢。也感谢Andras的回应。 – skafetaur