From 02ad5e6cdac855419c255f2d231f072a36a20baa Mon Sep 17 00:00:00 2001 From: Marko Toplak Date: Fri, 22 Dec 2023 11:03:50 +0100 Subject: [PATCH] Display NaNs in StringVariable as "?" --- Orange/data/tests/test_variable.py | 2 ++ Orange/data/variable.py | 3 +++ 2 files changed, 5 insertions(+) diff --git a/Orange/data/tests/test_variable.py b/Orange/data/tests/test_variable.py index 4021acafcd4..efb35106f51 100644 --- a/Orange/data/tests/test_variable.py +++ b/Orange/data/tests/test_variable.py @@ -634,6 +634,8 @@ def test_val(self): self.assertEqual(a.str_val(""), "?") self.assertEqual(a.str_val(Value(a, "")), "?") self.assertEqual(a.repr_val(Value(a, "foo")), '"foo"') + self.assertEqual(a.str_val(np.nan), "?") + self.assertEqual(a.str_val(None), "?") @variabletest(TimeVariable) diff --git a/Orange/data/variable.py b/Orange/data/variable.py index 100b34b7e9c..a82f73af5f6 100644 --- a/Orange/data/variable.py +++ b/Orange/data/variable.py @@ -10,6 +10,7 @@ from pickle import PickleError import numpy as np +import pandas import scipy.sparse as sp from Orange.data import _variable @@ -905,6 +906,8 @@ def str_val(val): if not val.value: return "?" val = val.value + if pandas.isnull(val): + return "?" return str(val) def repr_val(self, val):