diff options
Diffstat (limited to 'dev-python/statsmodels/files/statsmodels-0.12.2-new-pandas-scipy.patch')
-rw-r--r-- | dev-python/statsmodels/files/statsmodels-0.12.2-new-pandas-scipy.patch | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/dev-python/statsmodels/files/statsmodels-0.12.2-new-pandas-scipy.patch b/dev-python/statsmodels/files/statsmodels-0.12.2-new-pandas-scipy.patch deleted file mode 100644 index d11cd08ecf6f..000000000000 --- a/dev-python/statsmodels/files/statsmodels-0.12.2-new-pandas-scipy.patch +++ /dev/null @@ -1,122 +0,0 @@ -From 4f32f3990fbba0ee440af47e23a9354fdb7a0285 Mon Sep 17 00:00:00 2001 -From: Kevin Sheppard <kevin.sheppard@gmail.com> -Date: Fri, 12 Mar 2021 10:52:38 +0000 -Subject: [PATCH] MAINT: Fix issues arising from future changes - -Fix issues due to changes in SciPy and pandas ---- - statsmodels/regression/tests/test_rolling.py | 6 ++++-- - statsmodels/stats/descriptivestats.py | 8 +++++++- - statsmodels/stats/stattools.py | 4 +++- - 3 files changed, 14 insertions(+), 4 deletions(-) - -diff --git a/statsmodels/regression/tests/test_rolling.py b/statsmodels/regression/tests/test_rolling.py -index 050de605f..f02e076d6 100644 ---- a/statsmodels/regression/tests/test_rolling.py -+++ b/statsmodels/regression/tests/test_rolling.py -@@ -1,5 +1,6 @@ - from io import BytesIO - from itertools import product -+import warnings - - import numpy as np - import pandas as pd -@@ -261,8 +262,9 @@ def test_plot(): - res.plot_recursive_coefficient(variables="x4") - - fig = plt.Figure() -- with pytest.warns(Warning): -- # Just silence the warning -+ # Just silence the warning -+ with warnings.catch_warnings(): -+ warnings.simplefilter("ignore") - out = res.plot_recursive_coefficient(fig=fig) - assert out is fig - res.plot_recursive_coefficient(alpha=None, figsize=(30, 7)) -diff --git a/statsmodels/stats/descriptivestats.py b/statsmodels/stats/descriptivestats.py -index 96d455ca1..d5ad2f2a5 100644 ---- a/statsmodels/stats/descriptivestats.py -+++ b/statsmodels/stats/descriptivestats.py -@@ -446,8 +446,14 @@ class Description: - else: - iqr = mean - -+ def _safe_jarque_bera(c): -+ a = np.asarray(c) -+ if a.shape[0] < 2: -+ return (np.nan,) * 4 -+ return jarque_bera(a) -+ - jb = df.apply( -- lambda x: list(jarque_bera(x.dropna())), result_type="expand" -+ lambda x: list(_safe_jarque_bera(x.dropna())), result_type="expand" - ).T - nan_mean = mean.copy() - nan_mean.loc[nan_mean == 0] = np.nan -diff --git a/statsmodels/stats/stattools.py b/statsmodels/stats/stattools.py -index d349c472d..2ee1a6e0b 100644 ---- a/statsmodels/stats/stattools.py -+++ b/statsmodels/stats/stattools.py -@@ -118,7 +118,9 @@ def jarque_bera(resids, axis=0): - where n is the number of data points, S is the sample skewness, and K is - the sample kurtosis of the data. - """ -- resids = np.asarray(resids) -+ resids = np.atleast_1d(np.asarray(resids, dtype=float)) -+ if resids.size < 2: -+ raise ValueError("resids must contain at least 2 elements") - # Calculate residual skewness and kurtosis - skew = stats.skew(resids, axis=axis) - kurtosis = 3 + stats.kurtosis(resids, axis=axis) --- -2.32.0 - -From a9e21aef508ea98da8c5889547b8e5748986dae1 Mon Sep 17 00:00:00 2001 -From: Kevin Sheppard <kevin.k.sheppard@gmail.com> -Date: Wed, 7 Apr 2021 09:52:25 +0100 -Subject: [PATCH] MAINT: Fix descriptive stats with extension dtypes - -Add special path for extension dtypes to remove N/A ---- - statsmodels/stats/descriptivestats.py | 17 +++++++++++++++-- - 1 file changed, 15 insertions(+), 2 deletions(-) - -diff --git a/statsmodels/stats/descriptivestats.py b/statsmodels/stats/descriptivestats.py -index d5ad2f2a5..0fd3eb542 100644 ---- a/statsmodels/stats/descriptivestats.py -+++ b/statsmodels/stats/descriptivestats.py -@@ -441,8 +441,20 @@ class Description: - loc = count > 0 - mode_freq = np.full(mode.shape[0], np.nan) - mode_freq[loc] = mode_counts[loc] / count.loc[loc] -+ # TODO: Workaround for pandas AbstractMethodError in extension -+ # types. Remove when quantile is supported for these -+ _df = df -+ try: -+ from pandas.api.types import is_extension_array_dtype -+ _df = df.copy() -+ for col in df: -+ if is_extension_array_dtype(df[col].dtype): -+ _df[col] = _df[col].astype(object).fillna(np.nan) -+ except ImportError: -+ pass -+ - if df.shape[1] > 0: -- iqr = df.quantile(0.75) - df.quantile(0.25) -+ iqr = _df.quantile(0.75) - _df.quantile(0.25) - else: - iqr = mean - -@@ -493,7 +505,8 @@ class Description: - return results_df - # Pandas before 1.0 cannot handle empty DF - if df.shape[1] > 0: -- perc = df.quantile(self._percentiles / 100).astype(float) -+ # TODO: Remove when extension types support quantile -+ perc = _df.quantile(self._percentiles / 100).astype(float) - else: - perc = pd.DataFrame(index=self._percentiles / 100, dtype=float) - if np.all(np.floor(100 * perc.index) == (100 * perc.index)): --- -2.32.0 - |