Учитывая данные в столбцах Date
и Close
, я хотел бы рассчитать значения в столбце ConsecPeriodsUp
. В этом столбце указано количество последовательных двухнедельных периодов, значение Close
увеличилось.Расчет количества последовательных периодов, которые соответствуют условию
Date Close UpThisPeriod ConsecPeriodsUp
23/12/2015 3 1 1
16/12/2015 2 0 0
09/12/2015 1 0 0
02/12/2015 3 1 1
25/11/2015 2 0 0
18/11/2015 1 0 0
11/11/2015 7 1 3
04/11/2015 6 1 3
28/10/2015 5 1 2
21/10/2015 4 1 2
14/10/2015 3 1 1
07/10/2015 2 NaN NaN
30/09/2015 1 NaN NaN
Я написал следующий код, чтобы дать UpThisPeriod
колонки, но я не могу видеть, как я бы агрегировать, что, чтобы получить ConsecPeriodsUp
колонки, или есть ли способ сделать это в одном расчете, что я Нет.
import pandas as pd
def up_over_period(s):
return s[0] >= s[-1]
df = pd.read_csv("test_data.csv")
period = 3 # one more than the number of weeks
df['UpThisPeriod'] = pd.rolling_apply(
df['Close'],
window=period,
func=up_over_period,
).shift(-period + 1)
какой мощность вы ожидаете? –
Ожидаемый вывод находится в столбце 'ConsecPeriodsUp'. Входные данные - это только 'Date' и' Close'. –