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()