私は次の行で立ち往生しています
import quandl,math
import pandas as pd
import numpy as np
from sklearn import preprocessing ,cross_validation , svm
from sklearn.linear_model import LinearRegression
df = quandl.get('WIKI/GOOGL')
df = df[['Adj. Open','Adj. High','Adj. Low','Adj. Close','Adj. Volume']]
df['HL_PCT'] = (df["Adj. High"] - df['Adj. Close'])/df['Adj. Close'] * 100
df['PCT_CHANGE'] = (df["Adj. Close"] - df['Adj. Open'])/df['Adj. Open'] * 100
df = df[['Adj. Close','HL_PCT','PCT_CHANGE','Adj. Open']]
forecast_col = 'Adj. Close'
df.fillna(-99999,inplace = True)
forecast_out = int(math.ceil(.1*len(df)))
df['label'] = df[forecast_col].shift(-forecast_out)
print df.head()
Df [forecast_col] .shift(-forecast_out)の意味が理解できませんでした
コマンドと何を説明してください?
Pandas.Dataframeのシフト機能は、オプションの時間周波数を使用して、希望する期間数だけインデックスをシフトします。シフト機能の詳細については、これを参照してください link 。
シフトされる列値の小さな例を次に示します。
import pandas as pd
import numpy as np
df = pd.DataFrame({"date": ["2000-01-03", "2000-01-03", "2000-03-05", "2000-01-03", "2000-03-05",
"2000-03-05", "2000-07-03", "2000-01-03", "2000-07-03", "2000-07-03"],
"variable": ["A", "A", "A", "B", "B", "B", "C", "C", "C", "D"],
"no": [1, 2.2, 3.5, 1.5, 1.5, 1.2, 1.3, 1.1, 2, 3],
"value": [0.469112, -0.282863, -1.509059, -1.135632, 1.212112, -0.173215,
0.119209, -1.044236, -0.861849, None]})
以下は、シフトされる前の列の値です
df['value']
出力
0 0.469112
1 -0.282863
2 -1.509059
3 -1.135632
4 1.212112
5 -0.173215
6 0.119209
7 -1.044236
8 -0.861849
9 NaN
シフト関数値を使用すると、指定された期間に応じてシフトされます
たとえば、正の整数でシフトを使用すると、行の値が下にシフトします。
df['value'].shift(1)
出力
0 NaN
1 0.469112
2 -0.282863
3 -1.509059
4 -1.135632
5 1.212112
6 -0.173215
7 0.119209
8 -1.044236
9 -0.861849
Name: value, dtype: float64
負の整数でシフトを使用すると、行の値が上にシフトします。
df['value'].shift(-1)
出力
0 -0.282863
1 -1.509059
2 -1.135632
3 1.212112
4 -0.173215
5 0.119209
6 -1.044236
7 -0.861849
8 NaN
9 NaN
Name: value, dtype: float64