предположим, что в моей текущей компании есть df
import pandas as pd
data = {'Dates' : ['2018-10-15', '2018-02-01', '2018-04-01']}
data['Dates'] = pd.to_datetime(data.Dates)
print(df)
Dates
0 2018-10-15
1 2018-02-01
2 2018-04-01
, у нас есть структура финансовой недели, которую я обычно вырабатываю с помощью Excel, и я хотел бы сделать это в Python
Я использую модуль DateTime для обхода следующих условий:
если месяц равен >= 4
(апрель), то номер недели равен 1 (поэтому я беру номер недели по ISO и вычитаю 13)
если месяц равен < 4
Я добавляю 39.
Я использую ту же логику для ГОДА, если> = 4, то год + 1, еще ГОД
Я думалЯ мог бы использовать простой цикл for, который мог бы использовать для моего фрейма данных
for x in data.Dates:
if x.dt.month >= 4:
df['Week'] = x.dt.week - 13
else:
df['Week'] = x.dt.week + 39
и для года
for x in data.Dates:
if x.dt.month >= 4:
df['Year'] = FY & x.dt.year + 1
else:
df['Year'] = FY & x.dt.year
, однако, >= 4
в обоих случаях выдает ошибку формулы.
File "<ipython-input-38-eadb99fdd9db>", line 4
df.Dates.dt.month > 4:
^
SyntaxError: invalid syntax
однако, если я сделаю
data['Week'] = data.Dates.dt.week
, это даст все номера недели, я пропустил что-то основное или существенное здесь?
Я надеюсь, что это ясно и кратко, любой совет (даже как задавать лучшие вопросы) приветствуется.