Python初心者です。
datetime型で、2000年5月15日以降、5月22以内という条件のあるレコードを抽出しようとして、
下記のような文を作成しました。この時、det['Date']はdatetime型です。
det["案内2020/05/22"]=0
if(det[(det['Date'] >= dt.datetime(2020,5,15)) & (det['Date'] < dt.datetime(2020,5,22))]):
det["案内2020/05/22"]=1
こうすると、以下のようなエラーになります。
ValueError Traceback (most recent call last)
<ipython-input-71-389d570cb64d> in <module>()
1 det["案内2020/05/22"]=0
----> 2 if(det[(det['Date'] >= dt.datetime(2020,5,15)) and (det['Date'] < dt.datetime(2020,5,22))]):
3 det["案内2020/05/22"]=1
C:\Anaconda3\lib\site-packages\pandas\core\generic.py in nonzero(self)
1477 def nonzero(self):
1478 raise ValueError(
-> 1479 f"The truth value of a {type(self).name} is ambiguous. "
1480 "Use a.empty, a.bool(), a.item(), a.any() or a.all()."
1481 )
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
日づけの条件を重ねて&で結んでいくつか試したのですが、どうもうまくいきません。
どうすれば、条件にあったものにフラッグをつけることができるでしょうか。
何卒、よろしくお願い申し上げます。
ちなみに以下もしました。
det["案内2020/05/22"]=0
for i,v in enumerate(det['Date'].values):
if (v >= dt.datetime(2020,5,15)) and (v <= dt.datetime(2020,5,22)):
det["案内2020/05/22"][i]=1
この場合は、次のようなエラーが出ました。
TypeError Traceback (most recent call last)
<ipython-input-73-f11e924576fb> in <module>()
1 det["案内2020/05/22"]=0
2 for i,v in enumerate(det['Date'].values):
----> 3 if (v >= dt.datetime(2020,5,15)) and (v <= dt.datetime(2020,5,22)):
4 det["案内2020/05/22"][i]=1
TypeError: '>=' not supported between instances of 'int' and 'datetime.datetime'
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/02 09:57