code: def df_with_nan():
      # mapping is
      # a1 -> " " -> -inf -> 1234567890 -> "1234567890" -> "x1" -> 1 -> 2 -> 3 -> 4
      # a2
      # a3
      # a4
      return pd.DataFrame(
          {
              "id": [
                  "a1",
                  " ",
                  "-inf",
                  1234567890,
                  "1234567890",
                  "x1",
                  1,
                  2,
                  3.0,
                  4.0,
                  "a2",
                  "a3",
                  "a4",
              ],
              "parent_id": [
                  " ",  # valid
                  "-inf",  # valid
                  1234567890,  # valid
                  "1234567890",  # valid, different type
                  "x1",  # valid
                  1.0,  # valid, needs to map to the int value
                  2.0,  # valid, needs to map to the int value
                  3,  # valid, needs to map to the float value
                  4,  # valid, needs to map to the float value
                  float("nan"),  # should be ignored
                  "None",  # should be ignored
                  None,  # should be ignored
                  float("inf"),  # should be ignored
              ],
              "answer": [f"answer{i + 1}" for i in range(13)],
              "system": [f"system{i + 1}" for i in range(13)],
              "prompt": [f"prompt{i + 1}" for i in range(13)],
          }
      )
  
file_path: h2o-llmstudio/tests/src/datasets/test_conversation_chain_handler.py
imports: import time
  from unittest import mock
  from unittest.mock import MagicMock
  import pandas
  import pytest
  from llm_studio.app_utils.default_datasets import prepare_default_dataset_causal_language_modeling
  from llm_studio.src.datasets.conversation_chain_handler import ConversationChainHandler
label_desc: Use image node_id 8 for calling a global function with example usage: df_with_nan() and returns: pd