回答編集履歴

2

d

2019/02/06 06:15

投稿

tiitoi
tiitoi

スコア21956

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

2019/02/06 06:15

投稿

tiitoi
tiitoi

スコア21956

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
+ データはコメント欄にあった株価のデータを使っています。