Привет, я новичок в Python и был бы очень признателен, если бы кто-нибудь помог мне с моей проблемой:
У меня есть фрейм данных, который выглядит, как показано ниже:
Date rf1 rf2 rf3.....rf15
01-01-2008 FALSE TRUE TRUE TRUE
02-01-2008 FALSE TRUE FALSE FALSE
03-01-2008 TRUE TRUE FALSE FALSE
04-01-2008 TRUE FALSE TRUE TRUE
Я хотел создать период 250 дней, используя столбец дат во фрейме данных с скользящим периодом в 20 дней. Например, мой первый период начнется от 01-01-2008
до +250 дней, мой второй период начнется от 20-01-2008
до +250 дней и т. Д.
Я хочу, чтобы были выполнены два условия:
- Мне нужно выбрать те периоды 250 дней, в которых мой
TRUE
считается в столбце <24 </li> - В окне 250 дней, которое я создал, мои столбцы должны быть
FALSE
для 90 дней подряд за 1 день
У меня есть приведенный ниже код, но я почему-то не могу понять, как правильно выполнить мои два условия.
import pandas as pd
result = df.rolling(250, on='Date').sum().dropna().rename(
columns={'Date': 'End'}).assign(Start=df['Date'] - pd.Timedelta(249, 'D'))
# reorder columns
result = result.reindex(columns=['Start', 'End', 'rf1', 'rf2','rf3','rf4','rf5','rf6','rf7','rf8','rf9','rf10','rf11','rf12','rf13','rf14','rf15'])
# resample on every 20th day
result=result.resample('20D', on='Start').first().reset_index(drop=True)
Этот код дает мне окно 250 дней, но я не уверен, как удовлетворить два моих условия в этом фрейме данных! Помощь будет очень признательна.
Заранее большое спасибо