Я работаю с данными о ценах на акции и хотел бы, чтобы resample()
возвращал каждый второй ряд, а не каждый второй рабочий день (resample('2B')
). Препятствием является любой праздник, который приземляется в будний день. Смотрите ниже, День MLK - понедельник, 15 января 2018 года:
import pandas as pd
data = '''\
date,price
2018-01-08,88.28
2018-01-09,88.22
2018-01-10,87.82
2018-01-11,88.08
2018-01-12,89.6
2018-01-16,88.35
2018-01-17,90.14
2018-01-18,90.1
2018-01-19,90.0
2018-01-22,91.61
2018-01-23,91.9
2018-01-24,91.82
2018-01-25,92.33
2018-01-26,94.06'''
fileobj = pd.compat.StringIO(data)
df = pd.read_csv(fileobj, parse_dates=['date'], index_col=[0])
df_resample = df.resample('2B').min()
print(df_resample)
Выход:
price
2018-01-08 88.22
2018-01-10 87.82
2018-01-12 89.60
2018-01-16 88.35
2018-01-18 90.00
2018-01-22 91.61
2018-01-24 91.82
2018-01-26 94.06
Я бы хотел, чтобы сэмплер подскочил с 1/12 до 1/17. Я знаю, что могу использовать df['price'].loc[::2]
для доставки df.resample('2B').last()
, но мне нужно также использовать min()
, max()
и sum()
.
Спасибо.
Ожидаемый результат: