In [1]:
import numpy as np
In [2]:
import pandas as pd
In [3]:
import locale
from locale import atof
In [8]:
rng = pd.date_range('2017-11-01', '2017-11-30', freq='D')
In [10]:
locale.setlocale(locale.LC_NUMERIC, '')
Out[10]:
'English_United States.1252'
In [11]:
df = pd.DataFrame({'AHT': pd.to_numeric(aht.split('\n')), 'ATT': pd.to_numeric(att.split('\n')),
                   'HT': pd.to_numeric(ht.split('\n')), 'ACW': pd.to_numeric(acw.split('\n')),
                  'Calls': pd.to_numeric([atof(val) for val in calls.split('\n')], downcast='integer') }, index=rng)
In [12]:
df.index.name = 'Date'
In [13]:
df.Calls = df.Calls.astype(int)
In [15]:
grouped = df.groupby(lambda x: True)
In [16]:
get_wavg_aht = lambda g: np.average(g['AHT'], weights=g['Calls'])
In [17]:
grouped.apply(get_wavg_aht)
Out[17]:
True   
dtype: float64
In [18]:
get_wavg_att = lambda g: np.average(g['ATT'], weights=g['Calls'])
In [19]:
grouped.apply(get_wavg_att)
Out[19]:
True    
dtype: float64
In [20]:
get_wavg_ht = lambda g: np.average(g['HT'], weights=g['Calls'])
In [21]:
grouped.apply(get_wavg_ht)
Out[21]:
True   
dtype: float64
In [22]:
get_wavg_acw = lambda g: np.average(g['ACW'], weights=g['Calls'])
In [23]:
grouped.apply(get_wavg_acw)
Out[23]:
True    
dtype: float64