2017-05-08 2 views
2

私はpandasを使って移動平均を計算しようとしていますが、Dataframe.rolling()。mean()を使用すると、代わりに値がコピーされます。Dataframe.rolling()。移動平均を計算しないことを意味します。

stock_info['stock'].head() 
 
    Fecha    Open  High  Low   Close  Volume 
0 04-05-2007 00:00:00 234,4593 255,5703 234,3532 246,8906 6044574 
1 07-05-2007 00:00:00 246,8906 254,7023 247,855  252,1563 2953869 
2 08-05-2007 00:00:00 252,1562 250,7482 244,9617 250,1695 2007217 
3 09-05-2007 00:00:00 250,1695 249,7838 245,9261 248,3757 2329078 
4 10-05-2007 00:00:00 248,8194 248,9158 244,9617 245,6368 2138002 
stock_info['stock']['MA'] = stock_info['stock']['Close'].rolling(window=2).mean() 
 
    Fecha    Open  High  Low   Close  Volume MA 
0 04-05-2007 00:00:00 234,4593 255,5703 234,3532 246,8906 6044574 246,8906 
1 07-05-2007 00:00:00 246,8906 254,7023 247,855  252,1563 2953869 252,1563 
2 08-05-2007 00:00:00 252,1562 250,7482 244,9617 250,1695 2007217 250,1695 
3 09-05-2007 00:00:00 250,1695 249,7838 245,9261 248,3757 2329078 248,3757 
4 10-05-2007 00:00:00 248,8194 248,9158 244,9617 245,6368 2138002 245,6368 
+1

'Close'カラムの' dtype'とは何ですか?コンマ区切り記号からは、数字ではなく文字列があると思われます。 –

+2

あなたは正しいです、それは気の問題でした。データはCSVファイルから得られたもので、decimal = 'を設定するとシームレスに機能します。ありがとうございました! –

答えて

4

私が最初に考えたのはstock_info['stock']['Close']の値が文字列として保存されているということです、数値型ではなく

df = pd.DataFrame({'Close': ['246,8906', '252,1563', '250,1695']}) 

df['MA'] = df['Close'].rolling(window=2).mean() 

をしようとすると、あなたのために起こったとして

df 
Out[38]: 
     Close  MA 
0 246,8906 246,8906 
1 252,1563 252,1563 
2 250,1695 250,1695 

できます。必要に応じて が

df['MA'] = df['Close'].str.replace(',', '.').astype(float).rolling(window=2).mean() 

と言って、最初の数値にこれを変換すると、

df 
Out[40]: 
     Close   MA 
0 246,8906  NaN 
1 252,1563 249.52345 
2 250,1695 251.16290 

を与えます。

+0

正確には、それは私の質問のマークコメントで説明されているように起こったことです。 –

0

を使用して、あなたは

例をcalcualteするpd.rolling_mean使用することができます。

df1 = pd.DataFrame([ np.random.randint(-10,10) for _ in xrange(100) ],columns =['val']) 
    val 
0 4 
1 -3 
2 -7 
3 3 
4 -10 
df1['MA'] = pd.rolling_mean(df1.val,2) 
    val MA 
0 4 NaN 
1 -3 0.5 
2 -7 -5.0 
3 3 -2.0 
4 -10 -3.5 
関連する問題