質問編集履歴
1
実コードをコピーしました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,19 +1,37 @@
|
|
1
1
|
データフレームdfaの日付を表示する列Dateに対して、条件に合致する日があった場合は1とし、該当しなければ0とする新たな列sbを作りたいのですが、日付を認識しないのかすべて0になってしまいます。
|
2
2
|
|
3
|
-
○
|
3
|
+
○加工前のデータ(下記コード2行目 dfa.head()の結果)
|
4
|
-
|
4
|
+
Store Dept Date Weekly_Sales IsHoliday
|
5
|
-
|:--|:--:|--:|
|
6
|
-
|
5
|
+
0 1 1 2010-02-05 24924.50 False
|
7
|
-
|
6
|
+
1 1 1 2010-02-12 46039.49 True
|
7
|
+
2 1 1 2010-02-19 41595.55 False
|
8
|
+
3 1 1 2010-02-26 19403.54 False
|
9
|
+
4 1 1 2010-03-05 21827.90 False
|
8
10
|
|
9
11
|
○作ったコード
|
10
|
-
|
12
|
+
dfa=pd.read_csv('train.csv')
|
13
|
+
dfa.head()
|
11
|
-
dfa['
|
14
|
+
dfa['Date']=pd.to_datetime(dfa['Date'])
|
12
15
|
|
13
|
-
○結果
|
14
|
-
|Date|--|sb|
|
15
|
-
|:--|:--:|--:|
|
16
|
-
|2010-02-05||0|
|
17
|
-
|
16
|
+
s1=datetime.strptime('2010-2-12','%Y-%m-%d')
|
17
|
+
s2=datetime.strptime('2011-2-11','%Y-%m-%d')
|
18
|
+
s3=datetime.strptime('2012-2-10','%Y-%m-%d')
|
19
|
+
s1=datetime.strptime('2010-2-12','%Y-%m-%d')
|
18
20
|
|
21
|
+
dfa['SuperBowl']=np.where(dfa['Date']==s1,1,0)
|
22
|
+
dfa['SuperBowl']=np.where(dfa['Date']==s2,1,0)
|
23
|
+
dfa['SuperBowl']=np.where(dfa['Date']==s3,1,0)
|
24
|
+
|
25
|
+
dfa.head()
|
26
|
+
|
27
|
+
○上記コード実行後
|
28
|
+
|
29
|
+
Store Dept Date Weekly_Sales IsHoliday SuperBowl
|
30
|
+
0 1 1 2010-02-05 24924.50 False 0
|
31
|
+
1 1 1 2010-02-12 46039.49 True 0
|
32
|
+
2 1 1 2010-02-19 41595.55 False 0
|
33
|
+
3 1 1 2010-02-26 19403.54 False 0
|
34
|
+
4 1 1 2010-03-05 21827.90 False 0
|
35
|
+
|
36
|
+
|
19
37
|
どのようにすれば日付を条件文で認識してくれるのでしょうか
|