code: def test_pandas_dataframe(self):
      OrcaContext.pandas_read_backend = "pandas"
      file_path = os.path.join(resource_path, "orca/learn/ncf.csv")
      data_shard = read_csv(
          file_path,
          usecols=[0, 1, 2],
          dtype={0: np.float32, 1: np.float32, 2: np.float32},
      )
  
      estimator = get_estimator(model_fn=lambda config: SimpleModel())
      estimator.fit(
          data_shard,
          batch_size=2,
          epochs=2,
          feature_cols=["user", "item"],
          label_cols=["label"],
      )
  
      estimator.evaluate(
          data_shard,
          batch_size=2,
          feature_cols=["user", "item"],
          label_cols=["label"],
      )
      result = estimator.predict(
          data_shard, batch_size=2, feature_cols=["user", "item"]
      )
      result.collect()
  
imports: import os
  from unittest import TestCase
  import numpy
  import pytest
  import torch
  import torch.nn
  from zoo.orca import OrcaContext
  from zoo.orca.data.pandas import read_csv
  from zoo.orca.learn.metrics import Accuracy
  from zoo import init_nncontext
  from zoo.orca.learn.pytorch import Estimator
  from zoo.orca.data import SparkXShards
  from zoo.orca.data.image.utils import chunks
label_desc: Use image node_id 8 for calling the TestPyTorchEstimator obj's underlying member method code with example usage: obj.test_pandas_dataframe() without return types