From 1e88ead80a8d49bcd6c9ce787ffbba33dfce9441 Mon Sep 17 00:00:00 2001 From: Alexandr Velikiy <39257464+VargBurz@users.noreply.github.com> Date: Mon, 14 Jan 2019 17:42:58 +0300 Subject: [PATCH] Convert None to NaN before sending data to model #333 (#334) --- analytics/analytics/analytic_unit_manager.py | 1 + analytics/tests/test_dataset.py | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/analytics/analytics/analytic_unit_manager.py b/analytics/analytics/analytic_unit_manager.py index 89d6c7c..4025951 100644 --- a/analytics/analytics/analytic_unit_manager.py +++ b/analytics/analytics/analytic_unit_manager.py @@ -32,6 +32,7 @@ def prepare_data(data: list): """ data = pd.DataFrame(data, columns=['timestamp', 'value']) data['timestamp'] = pd.to_datetime(data['timestamp'], unit='ms') + data.fillna(value = np.nan, inplace = True) if not np.isnan(data['value'].min()): data['value'] = data['value'] - min(data['value']) diff --git a/analytics/tests/test_dataset.py b/analytics/tests/test_dataset.py index 99eb3b4..ac66919 100644 --- a/analytics/tests/test_dataset.py +++ b/analytics/tests/test_dataset.py @@ -115,6 +115,16 @@ class TestDataset(unittest.TestCase): data = prepare_data(data) except ValueError: self.fail('Model {} raised unexpectedly'.format(model_name)) + + def test_prepare_data_output_fon_nan(self): + data_nan = [[1523889000000, np.NaN], [1523889000001, np.NaN], [1523889000002, np.NaN]] + data_none = [[1523889000000, None], [1523889000001, None], [1523889000002, None]] + return_data_nan = prepare_data(data_nan) + return_data_none = prepare_data(data_none) + for item in return_data_nan: + self.assertTrue(np.isnan(item.value)) + for item in return_data_none: + self.assertTrue(np.isnan(item.value)) if __name__ == '__main__': unittest.main()