回答編集履歴

3

f

2019/08/26 10:14

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -39,6 +39,8 @@
39
39
 
40
40
 
41
41
  ```python
42
+
43
+ import numpy as np
42
44
 
43
45
  import pandas as pd
44
46
 

2

x

2019/08/26 10:14

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
  1. 9月 - 3ヶ月 = 6月 を計算する。
34
34
 
35
- 2. ID が同じで6月の行の売上を抽出する。抽出した結果が空の場合、そのようなデータはないということなので、np.nan を返す。
35
+ 2. ID1で6月の行の売上を抽出する。抽出した結果が空の場合、そのようなデータはないということなので、np.nan を返す。
36
36
 
37
37
 
38
38
 
@@ -96,13 +96,13 @@
96
96
 
97
97
 
98
98
 
99
- # 「ID が同じ」かつ「月が n_month_ago」と一致する行を取得する。
99
+ # 「ID が同じ」かつ「月が n_month_ago」と一致する行の列「売上」の値を取得する。
100
100
 
101
101
  sale_n_month_ago = df.loc[(df["ID"] == id_) & (df["月"] == n_month_ago), "売上"]
102
102
 
103
103
 
104
104
 
105
- # もしそのようなが存在しない場合は sale_n_month_ago は空なので、NaN とする。
105
+ # もしそのようなが存在しない場合は sale_n_month_ago は空なので、NaN とする。
106
106
 
107
107
  # 存在する場合はスカラーにする。
108
108
 

1

d

2019/08/26 10:09

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -116,37 +116,13 @@
116
116
 
117
117
 
118
118
 
119
- # datetime64 型に変換する。
120
-
121
- dt = pd.to_datetime(df["月"], format="%m月")
122
-
123
-
124
-
125
119
  for i in range(1, 4):
126
120
 
127
121
  df[f"{i}ヶ月前売り上げ"] = df.apply(get_n_month_ago, axis=1, args=(i,))
128
122
 
129
123
 
130
124
 
131
- print(df)
132
-
133
- # 月 ID 売上 地域 1ヶ月前売り上げ 2ヶ月前売り上げ 3ヶ月前売り上げ
134
-
135
- # 0 9月 1 100 東京 110.0 120.0 130.0
125
+ df.to_csv("test2.csv", index=False)
136
-
137
- # 1 8月 1 110 東京 120.0 130.0 NaN
138
-
139
- # 2 7月 1 120 東京 130.0 NaN NaN
140
-
141
- # 3 6月 1 130 東京 NaN NaN NaN
142
-
143
- # 4 9月 2 90 千葉 80.0 70.0 60.0
144
-
145
- # 5 8月 2 80 千葉 70.0 60.0 NaN
146
-
147
- # 6 7月 2 70 千葉 60.0 NaN NaN
148
-
149
- # 7 6月 2 60 千葉 NaN NaN NaN
150
126
 
151
127
  ```
152
128