python - Pandas date ranges and averaging the counts -


i have below pandas dataframe

stdate      enddate  count   2004-01-04  2004-01-10  68   2004-01-11  2004-01-17  100    2004-01-18  2004-01-24  83   2004-01-25  2004-01-31  56     2004-02-01  2004-02-07  56   2004-02-08  2004-02-14  68     2004-02-15  2004-02-21  81   2004-02-22  2004-02-28  68     2004-02-29  2004-03-06  76 

i want take average of count based on month:

that wanted like:

date    count 2004-01 (306/25-4) 2004-02 (349/28-01) 

for example second month enddate 3, (i need in aggregarting counts using pandas)

it's not complicated, there bit of work, , think should ditch pandas of calculation, , build dataframe right @ end.

suppose have 2 datetime objects, b , e. difference between them in days is

(e - b).days 

this gives how count of row divided days.

also, given month, can find last day of month using calendar module.

so, following:

counts_per_month = {} def process_row(b, e, count):     ...     # find how count splits between months,      #    update counts_per_month accordingly 

now call

df.apply(lambda r: process_row(r.stdate, r.enddate, r.count), axis=1) 

at point counts_per_month contain data. finish off calling pd.dataframe.from_dict.


Comments

Popular posts from this blog

Magento/PHP - Get phones on all members in a customer group -

php - Bypass Geo Redirect for specific directories -

php - .htaccess mod_rewrite for dynamic url which has domain names -