回答編集履歴
2
d
test
CHANGED
@@ -85,3 +85,91 @@
|
|
85
85
|
|
86
86
|
|
87
87
|
データはコメント欄にあった株価のデータを使っています。
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
## 追記
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
データは [こちら](https://query1.finance.yahoo.com/v7/finance/download/%5EN225?period1=1546755130&period2=1549433530&interval=1d&events=history&crumb=CXb32EA916t) の Download Data をクリックすると、ダウンロードされる CSV ファイルであっていますか?
|
96
|
+
|
97
|
+
中身は以下のようです。
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
```csv
|
102
|
+
|
103
|
+
Date,Open,High,Low,Close,Adj Close,Volume
|
104
|
+
|
105
|
+
2019-01-07,19944.609375,20266.220703,19920.800781,20038.970703,20038.970703,81500
|
106
|
+
|
107
|
+
2019-01-08,20224.669922,20347.919922,20106.359375,20204.039063,20204.039063,86400
|
108
|
+
|
109
|
+
2019-01-09,20366.300781,20494.349609,20331.199219,20427.060547,20427.060547,72800
|
110
|
+
|
111
|
+
2019-01-10,20270.880859,20345.919922,20101.929688,20163.800781,20163.800781,73700
|
112
|
+
|
113
|
+
2019-01-11,20296.449219,20389.890625,20294.740234,20359.699219,20359.699219,77700
|
114
|
+
|
115
|
+
2019-01-14,null,null,null,null,null,null
|
116
|
+
|
117
|
+
2019-01-15,20264.820313,20571.279297,20204.429688,20555.289063,20555.289063,78300
|
118
|
+
|
119
|
+
2019-01-16,20575.720703,20580.250000,20323.320313,20442.750000,20442.750000,69500
|
120
|
+
|
121
|
+
2019-01-17,20544.230469,20571.750000,20342.460938,20402.269531,20402.269531,63600
|
122
|
+
|
123
|
+
2019-01-18,20472.810547,20682.119141,20454.130859,20666.070313,20666.070313,64700
|
124
|
+
|
125
|
+
2019-01-21,20848.380859,20892.679688,20678.259766,20719.330078,20719.330078,61200
|
126
|
+
|
127
|
+
2019-01-22,20770.060547,20805.929688,20558.300781,20622.910156,20622.910156,57100
|
128
|
+
|
129
|
+
2019-01-23,20453.439453,20686.289063,20438.220703,20593.720703,20593.720703,0
|
130
|
+
|
131
|
+
2019-01-24,20506.240234,20620.720703,20467.589844,20574.630859,20574.630859,61400
|
132
|
+
|
133
|
+
2019-01-25,20598.640625,20844.310547,20598.640625,20773.560547,20773.560547,68400
|
134
|
+
|
135
|
+
2019-01-28,20746.289063,20759.480469,20624.550781,20649.000000,20649.000000,56800
|
136
|
+
|
137
|
+
2019-01-29,20555.439453,20673.660156,20406.220703,20664.640625,20664.640625,63100
|
138
|
+
|
139
|
+
2019-01-30,20701.619141,20706.269531,20527.529297,20556.539063,20556.539063,72100
|
140
|
+
|
141
|
+
2019-01-31,20832.910156,20869.419922,20682.910156,20773.490234,20773.490234,75700
|
142
|
+
|
143
|
+
2019-02-01,20797.029297,20929.630859,20741.980469,20788.390625,20788.390625,82200
|
144
|
+
|
145
|
+
2019-02-04,20831.900391,20922.580078,20823.679688,20883.769531,20883.769531,66600
|
146
|
+
|
147
|
+
2019-02-05,20960.470703,20981.230469,20823.179688,20844.449219,20844.449219,65500
|
148
|
+
|
149
|
+
2019-02-06,20928.869141,20971.660156,20860.990234,20873.599609,20873.599609,0
|
150
|
+
|
151
|
+
```
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
これに対して、
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
```python
|
160
|
+
|
161
|
+
import pandas as pd
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
df = pd.read_csv('test.csv')
|
166
|
+
|
167
|
+
ma = df['Close'].rolling(window=3, min_periods=1).mean() # 移動平均
|
168
|
+
|
169
|
+
ma.plot()
|
170
|
+
|
171
|
+
```
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
で動作確認していますが、質問者さんの環境ではエラーが出るということですか?
|
1
d
test
CHANGED
@@ -45,3 +45,43 @@
|
|
45
45
|
|
46
46
|
|
47
47
|
![イメージ説明](be1990abbf50c73c6fbd92b493c44a14.png)
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
## 追記 NaN を含むデータの移動平均について
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
[pandas.DataFrame.rolling](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.rolling.html)
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
> Minimum number of observations in window required to have a value (otherwise result is NA).
|
60
|
+
|
61
|
+
> For a window that is specified by an offset, min_periods will default to 1. Otherwise, min_periods will default to the size of the window.
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
デフォルトでは window 内に1つでも NaN があると、その部分の平均は NaN になってしまいます。
|
66
|
+
|
67
|
+
min_periods を指定することで、window 内に最低でも min_periods 個の有効な値があれば、平均が計算されるようになります。
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
```python
|
72
|
+
|
73
|
+
import pandas as pd
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
df = pd.read_csv('test.csv')
|
78
|
+
|
79
|
+
ma = df['Close'].rolling(window=3, min_periods=1).mean() # 移動平均
|
80
|
+
|
81
|
+
ma.plot()
|
82
|
+
|
83
|
+
```
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
データはコメント欄にあった株価のデータを使っています。
|