前提
Pythonです。
データセットに日付項目(YYYY-MM-DD)があります。
実現したいこと
データセットの日付とpd.date_range('2021-09-01', '2022-08-31', freq='1d')で発生させた日付が等しいときに、該当日付の週番号を付与したいです。
発生している問題・エラーメッセージ
しかし、if文の条件文が正しく評価されていないようで、うまく週番号を割り当てられません。
どこかで勘違いしてしまっているのでしょうか?
該当のソースコード
Python
1def special_calendar(year, month, day): 2 inp = datetime.date(year=year, month=month, day=day) 3 first = datetime.date(year=year, month=1, day=1) 4 5 #曜日の計算 6 inp_how = (inp.weekday()+1) % 7 #+4は曜日を木曜始まりに変更するため 7 first_how = (first.weekday()+4) % 7 8 9 #週番号の計算 10 #カレンダーの左上(最初の日曜日)の日付を取得 11 upper_left = first - datetime.timedelta(days=first_how) 12 13 #基準日との日数差を計算して週番号を取得 14 inp_week = (inp - upper_left).days // 7 15 16 return inp_week 17 18 19for d in pd.date_range('2021-09-01', '2022-08-31', freq='1d'): 20 if df_actual_all['date'].any() == pd.to_datetime(d.date()).date: 21 df_actual_all['week'] = special_calendar(year=d.date().year, month=d.date().month, day=d.date().day) 22 else: 23 df_actual_all['week'] = 99
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/11/02 05:04