#python #pandas #dataframe
Вопрос:
Итак, допустим, у меня есть фрейм данных pandas с НЕКОТОРЫМИ повторяющимися датами:
import pandas as pd
import random
reportDate = pd.date_range('04-01-2010', '09-03-2021',periods = 5000).date
lowPriceMin = [random.randint(10, 20) for x in range(5000)]
df = pd.DataFrame()
df['reportDate'] = reportDate
df['lowPriceMin'] = lowPriceMin
Теперь я хочу получать минимальное значение с каждой недели с даты начала. Таким образом, у меня будет около 559 (количество недель с «04-01-2010» по «09-03-2021») значений с минимальным значением за каждую неделю.
Ответ №1:
Попробуйте с resample
:
df['reportDate'] = pd.to_datetime(df['reportDate'])
>>> df.set_index("reportDate").resample("W").min()
lowPriceMin
reportDate
2010-01-10 10
2010-01-17 10
2010-01-24 14
2010-01-31 10
2010-02-07 14
...
2021-02-14 11
2021-02-21 11
2021-02-28 10
2021-03-07 10
2021-03-14 17
[584 rows x 1 columns]
Комментарии:
1. Спасибо, на самом деле у меня было что-то похожее, но я думал
lowPriceMin
, что ценность в том, что ценность вreportDate