code: def get_nab_df(self) -> pd.DataFrame:
      df = pd.read_csv(
          "https://raw.githubusercontent.com/numenta/NAB/master/data/realKnownCause/nyc_taxi.csv"
      )
      df.rename(
          columns={"timestamp": "t", "value": "val"}, inplace=True
      )
      train_len = int(len(df) * 0.5)
      df_train = df.iloc[:train_len]
      df_test = df.iloc[train_len:]
      df_train["train"] = 1
      df_test["train"] = 0
      df = pd.concat([df_train, df_test], axis=0)
      return df
  
imports: import os
  import time
  from unittest.mock import patch
  import pandas
  from mindsdb_sql import parse_sql
  from mindsdb.integrations.handlers.merlion_handler.adapters import DefaultForecasterAdapter, SarimaForecasterAdapter, ProphetForecasterAdapter, MSESForecasterAdapter, IsolationForestDetectorAdapter, WindStatsDetectorAdapter, ProphetDetectorAdapter
  from .executor_test_base import BaseExecutorTest
  import pandas
label_desc: Use image node_id 3 for calling the TestMerlion obj's underlying member method code with example usage: obj.get_nab_df() and returns: df