回答編集履歴

3

誤字修正

2019/08/28 11:04

投稿

can110
can110

スコア38266

test CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
 
4
4
 
5
- - まずは提示方法で補(内挿)する
5
+ - まずは提示方法で補(内挿)する
6
-
6
+
7
- - 補前がnan かつ 補後の前後の行の値のいずれかがnan である行を特定する
7
+ - 補前がnan かつ 補後の前後の行の値のいずれかがnan である行を特定する
8
-
8
+
9
- - 上記の行なら補後の値を`nan`に戻す。
9
+ - 上記の行なら補後の値を`nan`に戻す。
10
10
 
11
11
 
12
12
 
@@ -50,7 +50,7 @@
50
50
 
51
51
 
52
52
 
53
- # まずは補する
53
+ # まずは補する
54
54
 
55
55
  df2 = df1.interpolate(limit=1, method="time", limit_area='inside', limit_direction="backward")
56
56
 
@@ -78,7 +78,7 @@
78
78
 
79
79
 
80
80
 
81
- # 補前がnan かつ 補後の前後の値のいずれかがnan
81
+ # 補前がnan かつ 補後の前後の値のいずれかがnan
82
82
 
83
83
  sr = np.isnan(df1[0]) & ( np.isnan(df2[0].shift(-1)) | np.isnan(df2[0].shift(1)) )
84
84
 

2

修正

2019/08/28 11:04

投稿

can110
can110

スコア38266

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  - まずは提示方法で補完(内挿)する
6
6
 
7
- - 補完前がnan かつ 補完後の前後の値のいずれかがnan である行を特定する
7
+ - 補完前がnan かつ 補完後の前後の行の値のいずれかがnan である行を特定する
8
8
 
9
9
  - 上記の行なら補完後の値を`nan`に戻す。
10
10
 

1

コード修正

2019/08/25 02:13

投稿

can110
can110

スコア38266

test CHANGED
@@ -50,6 +50,8 @@
50
50
 
51
51
 
52
52
 
53
+ # まずは補完する
54
+
53
55
  df2 = df1.interpolate(limit=1, method="time", limit_area='inside', limit_direction="backward")
54
56
 
55
57
  print(df2)
@@ -100,6 +102,36 @@
100
102
 
101
103
  """
102
104
 
105
+
106
+
107
+ # 上記の条件を満たす行にnanをセット
108
+
109
+ df3 = df2.copy()
110
+
111
+ df3[0][sr] = nan
112
+
113
+ print(df3)
114
+
115
+ """
116
+
117
+ 0
118
+
119
+ 2016-12-31 NaN
120
+
121
+ 2017-12-31 NaN
122
+
123
+ 2018-12-31 1.000000
124
+
125
+ 2019-12-31 2.000000
126
+
127
+ 2020-12-31 2.500684
128
+
129
+ 2021-12-31 3.000000
130
+
131
+ 2022-12-31 NaN
132
+
133
+ """
134
+
103
135
  ```
104
136
 
105
137