def _col_info(result, more_info=None): '''Stack model info in a column ''' model_info = summary_model(result) default_info_ = OrderedDict() default_info_['Model:'] = lambda x: x.get('Model:') default_info_['No. Observations:'] = lambda x: x.get('No. Observations:') default_info_['R-squared:'] = lambda x: x.get('R-squared:') default_info_['Adj. R-squared:'] = lambda x: x.get('Adj. R-squared:') default_info_['Pseudo R-squared:'] = lambda x: x.get('Pseudo R-squared:') default_info_['F-statistic:'] = lambda x: x.get('F-statistic:') default_info_['Covariance Type:'] = lambda x: x.get('Covariance Type:') default_info_['Eeffects:'] = lambda x: x.get('Effects:') default_info_['Covariance Type:'] = lambda x: x.get('Covariance Type:') default_info = default_info_.copy() for k,v in default_info_.items(): if v(model_info): default_info[k] = v(model_info) else: default_info.pop(k) # pop the item whose value is none. if more_info is None: more_info = default_info else: if not isinstance(more_info,list): more_info = [more_info] for i in more_info: try: default_info[i] = getattr(result,i) except (AttributeError, KeyError, NotImplementedError) as e: raise e more_info = default_info try: out = pd.DataFrame(more_info, index=[result.model.endog_names]).T except (AttributeError): out = pd.DataFrame(more_info, index=result.model.dependent.vars).T return out