[docs]defcompute(activity:pd.DataFrame,stock:pd.DataFrame)->pd.DataFrame:"""Quality diagnostic for vehicle utilization. Parameters ---------- activity : pandas.DataFrame From :mod:`.T000`. stock : pandas.DataFrame From :mod:`.T008`. """query="SERVICE == 'P' and MODE == 'Road' and VEHICLE == 'LDV'"# Columns to remove for alignment# - ID, VARIABLE, UNIT—since these are different quantities.# - FUEL: _Z for activity, _T for stock.# - AUTOMATION, OPERATOR: _T for activity, _Z for stock.remove_cols=["ID","VARIABLE","UNIT","FUEL","AUTOMATION","OPERATOR"]# Remaining columns for indexindex_cols=list(filter(lambdac:cnotinremove_cols+["VALUE"],activity.columns))# Select activityactivity=activity.query(query).drop(columns=remove_cols).set_index(index_cols)# Select stock: this data contain both vehicles and vehicles per capita; use only# the formerstock=(stock.query(query+"and UNIT == 'vehicle'").drop(columns=remove_cols).set_index(index_cols))# - Compute ratio.# - Drop NA values.# - Convert units.# - Assign 'VARIABLE'.return((activity/stock).dropna().reset_index().pipe(convert_units,"Gpassenger km / vehicle / year","kpassenger km / vehicle / year",).assign(VARIABLE="Vehicle activity"))