def summarize_mds_ops_df(dataframe, opname, timestep=None):
    """
    Summarize various metadata op counts over a time range
    """
    if timestep is None:
        if dataframe.shape[0] < 2:
            raise Exception('must specify timestep for single-row dataframe')
        timestep = (dataframe.index[1].to_pydatetime() - dataframe.index[0]
            .to_pydatetime()).total_seconds()
    results = {}
    results['tot_%s_ops' % opname] = dataframe.sum().sum() * timestep
    results['ave_%s_ops_per_sec' % opname] = dataframe.mean().mean()
    results['max_%s_ops_per_sec' % opname] = dataframe.max().max()
    results['min_%s_ops_per_sec' % opname] = dataframe.min().min()
    return results
