@staticmethod<EOL><INDENT>def _fill_missing_values(df, range_values, fill_value=<NUM_LIT:0>, fill_method=None):<DEDENT>
idx_colnames  = df.index.names<EOL>idx_colranges = [range_values[x] for x in idx_colnames]<EOL>fullindex = pd.Index([p for p in product(*idx_colranges)],<EOL>name=tuple(idx_colnames))<EOL>fulldf = df.reindex(index=fullindex, fill_value=fill_value,<EOL>method=fill_method)<EOL>fulldf.index.names = idx_colnames<EOL>return fulldf, idx_colranges<EOL>
Will get the names of the index colums of df, obtain their ranges from
range_values dict and return a reindexed version of df with the given
range values.

:param df: pandas DataFrame

:param range_values: dict or array-like
Must contain for each index column of df an entry with all the values
within the range of the column.

:param fill_value: scalar or 'nearest', default 0
Value to use for missing values. Defaults to 0, but can be any
"compatible" value, e.g., NaN.
The 'nearest' mode will fill the missing value with the nearest value in
 the column.

:param fill_method:  {'backfill', 'bfill', 'pad', 'ffill', None}, default None
Method to use for filling holes in reindexed DataFrame
'pad' / 'ffill': propagate last valid observation forward to next valid
'backfill' / 'bfill': use NEXT valid observation to fill gap

:return: pandas Dataframe and used column ranges
reindexed DataFrame and dict with index column ranges