.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "_examples/scikits/plot_data_wrapper.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr__examples_scikits_plot_data_wrapper.py: 03. Dummy Data Wrapper ====================== Dummy data wrapper .. warning:: Non sense! .. GENERATED FROM PYTHON SOURCE LINES 10-130 .. rst-class:: sphx-glr-script-out Out: .. code-block:: none Features: 0 1 2 3 4 5 6 0 NaN NaN NaN NaN NaN NaN NaN 1 0.431650 NaN 1.494026 NaN NaN NaN NaN 2 NaN NaN 1.276648 NaN NaN NaN NaN 3 -2.151832 -0.911728 NaN NaN NaN NaN NaN 4 -0.344984 NaN 0.567442 NaN NaN 0.046889 NaN ... ... ... ... ... ... ... ... 1995 0.114631 NaN 0.499642 NaN NaN NaN 0.842285 1996 NaN NaN -1.025954 -0.457557 NaN NaN 0.099235 1997 NaN NaN -0.011799 NaN NaN 1.386205 0.941873 1998 NaN NaN NaN NaN NaN NaN NaN 1999 0.321509 0.865638 0.410198 NaN -0.496402 NaN NaN [2000 rows x 7 columns] SimpleImputer() 0 1 2 3 4 5 6 0 0.008945 -0.075735 0.014617 0.034992 -0.017233 -0.099410 0.053082 1 0.431650 -0.075735 1.494026 0.034992 -0.017233 -0.099410 0.053082 2 0.008945 -0.075735 1.276648 0.034992 -0.017233 -0.099410 0.053082 3 -2.151832 -0.911728 0.014617 0.034992 -0.017233 -0.099410 0.053082 4 -0.344984 -0.075735 0.567442 0.034992 -0.017233 0.046889 0.053082 ... ... ... ... ... ... ... ... 1995 0.114631 -0.075735 0.499642 0.034992 -0.017233 -0.099410 0.842285 1996 0.008945 -0.075735 -1.025954 -0.457557 -0.017233 -0.099410 0.099235 1997 0.008945 -0.075735 -0.011799 0.034992 -0.017233 1.386205 0.941873 1998 0.008945 -0.075735 0.014617 0.034992 -0.017233 -0.099410 0.053082 1999 0.321509 0.865638 0.410198 0.034992 -0.496402 -0.099410 0.053082 [2000 rows x 7 columns] SimpleImputer(strategy='median') 0 1 2 3 4 5 6 0 0.032924 -0.104899 0.022030 -0.017016 -0.057768 -0.083552 0.073601 1 0.431650 -0.104899 1.494026 -0.017016 -0.057768 -0.083552 0.073601 2 0.032924 -0.104899 1.276648 -0.017016 -0.057768 -0.083552 0.073601 3 -2.151832 -0.911728 0.022030 -0.017016 -0.057768 -0.083552 0.073601 4 -0.344984 -0.104899 0.567442 -0.017016 -0.057768 0.046889 0.073601 ... ... ... ... ... ... ... ... 1995 0.114631 -0.104899 0.499642 -0.017016 -0.057768 -0.083552 0.842285 1996 0.032924 -0.104899 -1.025954 -0.457557 -0.057768 -0.083552 0.099235 1997 0.032924 -0.104899 -0.011799 -0.017016 -0.057768 1.386205 0.941873 1998 0.032924 -0.104899 0.022030 -0.017016 -0.057768 -0.083552 0.073601 1999 0.321509 0.865638 0.410198 -0.017016 -0.496402 -0.083552 0.073601 [2000 rows x 7 columns] StandardScaler() 0 1 2 3 4 5 6 0 NaN NaN NaN NaN NaN NaN NaN 1 0.438394 NaN 1.486817 NaN NaN NaN NaN 2 NaN NaN 1.268350 NaN NaN NaN NaN 3 -2.240981 -0.890658 NaN NaN NaN NaN NaN 4 -0.367067 NaN 0.555593 NaN NaN 0.156534 NaN ... ... ... ... ... ... ... ... 1995 0.109608 NaN 0.487454 NaN NaN NaN 0.805312 1996 NaN NaN -1.045781 -0.485475 NaN NaN 0.047095 1997 NaN NaN -0.026548 NaN NaN 1.589554 0.906933 1998 NaN NaN NaN NaN NaN NaN NaN 1999 0.324165 1.002927 0.397562 NaN -0.461021 NaN NaN [2000 rows x 7 columns] MinMaxScaler() 0 1 2 3 4 5 6 0 NaN NaN NaN NaN NaN NaN NaN 1 0.618881 NaN 0.672468 NaN NaN NaN NaN 2 NaN NaN 0.639448 NaN NaN NaN NaN 3 0.158435 0.342128 NaN NaN NaN NaN NaN 4 0.480464 NaN 0.531720 NaN NaN 0.555894 NaN ... ... ... ... ... ... ... ... 1995 0.562380 NaN 0.521421 NaN NaN NaN 0.614038 1996 NaN NaN 0.289683 0.431244 NaN NaN 0.477975 1997 NaN NaN 0.443733 NaN NaN 0.772594 0.632273 1998 NaN NaN NaN NaN NaN NaN NaN 1999 0.599251 0.673000 0.507834 NaN 0.497717 NaN NaN [2000 rows x 7 columns] RobustScaler() 0 1 2 3 4 5 6 0 NaN NaN NaN NaN NaN NaN NaN 1 0.309086 NaN 1.204426 NaN NaN NaN NaN 2 NaN NaN 1.026561 NaN NaN NaN NaN 3 -1.693589 -0.611088 NaN NaN NaN NaN NaN 4 -0.292949 NaN 0.446270 NaN NaN 0.101739 NaN ... ... ... ... ... ... ... ... 1995 0.063337 NaN 0.390795 NaN NaN NaN 0.568552 1996 NaN NaN -0.857488 -0.327481 NaN NaN 0.018960 1997 NaN NaN -0.027680 NaN NaN 1.146353 0.642211 1998 NaN NaN NaN NaN NaN NaN NaN 1999 0.223706 0.735080 0.317609 NaN -0.287626 NaN NaN [2000 rows x 7 columns] | .. code-block:: default :lineno-start: 11 # Libraries import pandas as pd # Libraries specific from sklearn.preprocessing import StandardScaler from sklearn.preprocessing import MinMaxScaler from sklearn.preprocessing import RobustScaler from sklearn.preprocessing import Normalizer from sklearn.impute import SimpleImputer class DataframeXYWrapper(): def __init__(self, dataframe, X_columns, y_columns): """ """ self.dataframe = dataframe self.X_cols = X_columns self.y_cols = y_columns def get_X(self): """Return...""" return self.dataframe[self.X_cols] def get_y(self): """Return...""" return self.dataframe[self.y_cols] def get_X_y(self): """Return... """ return self.dataframe[self.X_cols + self.y_cols] def apply(self, obj, func, requires_X=False, requires_y=False, argname_X='X', argname_y='y', inplace=True, return_obj=True, **kwargs): """ """ if requires_X: kwargs[argname_X] = self.get_X() if requires_y: kwargs[argname_y] = self.get_y() # Output out = getattr(obj, func)(**kwargs) # Inplace if inplace: self.dataframe[self.X_cols] = out # Return if return_obj: return obj, out return out # -------------------------------------------------- # Main # -------------------------------------------------- # Libraries import numpy as np N = 2000 # number of observations F = 7 # number of features P = 70 # percent of cells with nan # Create dataset X = np.random.randn(N, F) y = (np.random.rand(N) > 0.1).astype(int) # Include NaN idxs = np.random.choice(X.size, int(N*F*P/100), replace=False) X.ravel()[idxs] = np.nan # Create dataframe dataframe = pd.DataFrame(X) dataframe['y'] = y # Create wrapper wrapper = DataframeXYWrapper(dataframe=dataframe, X_columns=list(range(F)), y_columns=['y']) # Show print("Features:") print(wrapper.get_X()) # ------------------------------ # Imputers # ------------------------------ # Loop for name, imputer in [ ('mean', SimpleImputer(strategy='mean')), ('median', SimpleImputer(strategy='median'))]: # Apply imputer obj, out = wrapper.apply(imputer, 'fit_transform', requires_X=True, inplace=False) # Display print("\n%s" % imputer) print(pd.DataFrame(out)) # ------------------------------ # Scalers # ------------------------------ # Loop for name, scaler in [('std', StandardScaler()), ('mmx', MinMaxScaler()), ('rbs', RobustScaler())]: # Apply scaler obj, out = wrapper.apply(scaler, 'fit_transform', requires_X=True, inplace=False) # Display print("\n%s" % scaler) print(pd.DataFrame(out)) .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 0.075 seconds) .. _sphx_glr_download__examples_scikits_plot_data_wrapper.py: .. only :: html .. container:: sphx-glr-footer :class: sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_data_wrapper.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_data_wrapper.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_