Model Related Utilities¶
Introduction¶
These are utility functions used within UrbanSim’s model packages. They may be useful when implementing new models or adding custom behavior to UrbanSim.
API¶
| 
 | Use the DataFrame.query method to filter a table down to the desired rows. | 
| 
 | Filter a table based on a set of restrictions given in Series of column name / filter parameter pairs. | 
| 
 | Concatenate a sequence of pandas Indexes. | 
| 
 | We support specifying model expressions as strings, lists, or dicts; but for use with patsy and statsmodels we need a string. | 
| 
 | Report whether a model expression has constant specific term. | 
| 
 | Returns a list of the columns used in a set of query filters. | 
| 
 | Returns the names of all the columns used in a patsy formula. | 
Utilities used within the urbansim.models package.
- 
urbansim.models.util.apply_filter_query(df, filters=None)[source]¶
- Use the DataFrame.query method to filter a table down to the desired rows. - Parameters
- dfpandas.DataFrame
- filterslist of str or str, optional
- List of filters to apply. Will be joined together with ‘ and ‘ and passed to DataFrame.query. A string will be passed straight to DataFrame.query. If not supplied no filtering will be done. 
 
- Returns
- filtered_dfpandas.DataFrame
 
 
- 
urbansim.models.util.columns_in_filters(filters)[source]¶
- Returns a list of the columns used in a set of query filters. - Parameters
- filterslist of str or str
- List of the filters as passed passed to - apply_filter_query.
 
- Returns
- columnslist of str
- List of all the strings mentioned in the filters. 
 
 
- 
urbansim.models.util.columns_in_formula(formula)[source]¶
- Returns the names of all the columns used in a patsy formula. - Parameters
- formulastr, iterable, or dict
- Any formula construction supported by - str_model_expression.
 
- Returns
- columnslist of str
 
 
- 
urbansim.models.util.concat_indexes(indexes)[source]¶
- Concatenate a sequence of pandas Indexes. - Parameters
- indexessequence of pandas.Index
 
- Returns
- pandas.Index
 
 
- 
urbansim.models.util.filter_table(table, filter_series, ignore=None)[source]¶
- Filter a table based on a set of restrictions given in Series of column name / filter parameter pairs. The column names can have suffixes _min and _max to indicate “less than” and “greater than” constraints. - Parameters
- tablepandas.DataFrame
- Table to filter. 
- filter_seriespandas.Series
- Series of column name / value pairs of filter constraints. Columns that ends with ‘_max’ will be used to create a “less than” filters, columns that end with ‘_min’ will be used to create “greater than or equal to” filters. A column with no suffix will be used to make an ‘equal to’ filter. 
- ignoresequence of str, optional
- List of column names that should not be used for filtering. 
 
- Returns
- filteredpandas.DataFrame
 
 
- 
urbansim.models.util.has_constant_expr(expr)[source]¶
- Report whether a model expression has constant specific term. That is, a term explicitly specying whether the model should or should not include a constant. (e.g. ‘+ 1’ or ‘- 1’.) - Parameters
- exprstr
- Model expression to check. 
 
- Returns
- has_constantbool
 
 
- 
urbansim.models.util.sorted_groupby(df, groupby)[source]¶
- Perform a groupby on a DataFrame using a specific column and assuming that that column is sorted. - Parameters
- dfpandas.DataFrame
- groupbyobject
- Column name on which to groupby. This column must be sorted. 
 
- Returns
- generator
- Yields pairs of group_name, DataFrame. 
 
 
- 
urbansim.models.util.str_model_expression(expr, add_constant=True)[source]¶
- We support specifying model expressions as strings, lists, or dicts; but for use with patsy and statsmodels we need a string. This function will take any of those as input and return a string. - Parameters
- exprstr, iterable, or dict
- A string will be returned unmodified except to add or remove a constant. An iterable sequence will be joined together with ‘ + ‘. A dictionary should have - right_sideand, optionally,- left_sidekeys. The- right_sidecan be a list or a string and will be handled as above. If- left_sideis present it will be joined with- right_sidewith ‘ ~ ‘.
- add_constantbool, optional
- Whether to add a ‘ + 1’ (if True) or ‘ - 1’ (if False) to the model. If the expression already has a ‘+ 1’ or ‘- 1’ this option will be ignored. 
 
- Returns
- model_expressionstr
- A string model expression suitable for use with statsmodels and patsy.