2017-06-21 6 views
2

私は、次の行データフレームのシフトとは何ですか?

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)とは何を意味するのか理解できませんでした

は、コマンドを説明し、何をするかでくださいで立ち往生しています?

+0

予測を行うときは、列が「遅れている」ため、負のシフトは列をForecast_outの値だけ前方にシフトします。 – TTT

+2

[docs](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.shift.html#pandas.Series.shift)を読んだことがありますか? – EdChum

答えて

5

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 

シフト関数値を使用し与えられた期間によってシフトされる

行が上方価値負の整数とシフトがシフト使用

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) 

出力:正の整数とシフトを使用して、例えば

行値下方シフト

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 
関連する問題