Преобразуйте в datetime
, затем найдите, где месяц меняет строку на строку:
d = pd.to_datetime(df['date'],dayfirst=True).dt.month
df['flag'] = d.ne(d.shift(-1)).astype(int)
>>> df
date total flag
0 02/01/00 28.000568 0
1 09/01/00 28.000568 0
2 16/01/00 28.000568 0
3 23/01/00 28.000568 0
4 30/01/00 28.000568 1
5 06/02/00 12.500612 0
6 13/02/00 12.500612 1
Обратите внимание, что я сделал это отдельно, чтобы не изменять формат date
в кадре данных.Вы также можете сделать это на месте:
df['date'] = pd.to_datetime(df['date'],dayfirst=True)
df['flag'] = df['date'].dt.month.ne(df['date'].dt.month.shift(-1)).astype(int)
Также обратите внимание, что последняя строка помечена, даже если она не в желаемом выводе.Технически, это последняя запись за месяц 2