Как написать функцию для получения ежемесячных, еженедельных данных от ежедневных в пандах? - PullRequest
0 голосов
/ 01 октября 2018

У меня есть данные, как показано ниже, и мне нужно написать функцию для преобразования этих данных в еженедельные (воскресенье как дата окончания недели) или ежемесячные в зависимости от входного параметра: -

выборка дневных ценовых данных:

date             price_chair     vol_glass
02-09-2018         2              6
03-09-2018         1              5
04-09-2018         3              6
05-09-2018         4              8
10-09-2018         5              10
15-09-2018         2              10
18-09-2018         2              10
01-10-2018         3              20

, если опция ежемесячная, то взять среднее значение цены стула и сумму объема стекла в месяц, эти столбцы могут варьироваться:

year_month        price_chair_avg_monthly     vol_glass_sum_monthly
2018-09            2.71                    55
2018-10            3                       20

, если опция еженедельная, то принятьСредняя цена стула и сумма объема ст. за неделю, эти столбцы могут варьироваться:

date    price_chair_avg_weekly  vol_glass_sum_weekly
02/09/18    2                    6
09/09/18    2.67                 19
16/09/18    3.5                  20
23/09/18    2                    10
30/09/18        
07/10/18    3                    20

1 Ответ

0 голосов
/ 01 октября 2018

Используйте resample с Resampler.agg со словарем для указания столбцов и функций повторной выборки:

#if first column is not index
#df = df.set_index('date')

df.index = pd.to_datetime(df.index, dayfirst=True)

df1 = df.resample('MS').agg({'price_chair':'mean','vol_glass':'sum'})
print (df1)
            price_chair  vol_glass
date                              
2018-09-01     2.714286         55
2018-10-01     3.000000         20

df2 = df.resample('W').agg({'price_chair':'mean','vol_glass':'sum'})
print (df2)
            price_chair  vol_glass
date                              
2018-09-02     2.000000          6
2018-09-09     2.666667         19
2018-09-16     3.500000         20
2018-09-23     2.000000         10
2018-09-30          NaN          0
2018-10-07     3.000000         20
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...