code: def test_from_dataframe_none_values() -> None:
      # Pandas will keep None values in string columns
      df = pd.DataFrame(
          data={
              "uid": ["1", "2", "3", "4"],
              "from_uid": [None, "1", "2", "3"],
              "a": [23, 43, 5, None],
              "b": [33, 45, None, 23],
          }
      )
      xp = hip.Experiment.from_dataframe(df)
      assert len(xp.datapoints) == 4
      xp.validate()
      xp._asdict()
  
imports: import tempfile
  import shutil
  from contextlib import contextmanager
  from unittest.mock import patch
  import typing
  import pytest
  import pandas
  import optuna
  import hiplot
label_desc: Use image node_id 7 for calling a global function with example usage: test_from_dataframe_none_values() without return types