class_docstr: Interact with Presto through prestodb.
  
  >>> ph = PrestoHook()
  >>> sql = "SELECT count(1) AS num FROM airflow.static_babynames"
  >>> ph.get_records(sql)
  [[340698]]
code: def get_pandas_df(self, sql: str = "", parameters=None, **kwargs):
      import pandas as pd
  
      cursor = self.get_cursor()
      try:
          cursor.execute(self.strip_sql_string(sql), parameters)
          data = cursor.fetchall()
      except DatabaseError as e:
          raise PrestoException(e)
      column_descriptions = cursor.description
      if data:
          df = pd.DataFrame(data, **kwargs)
          df.rename(
              columns={
                  n: c[0]
                  for n, c in zip(df.columns, column_descriptions)
              },
              inplace=True,
          )
      else:
          df = pd.DataFrame(**kwargs)
      return df
  
imports: from __future__ import annotations
  import json
  import os
  from typing import TYPE_CHECKING, Any, Iterable, Mapping, TypeVar
  import prestodb
  from prestodb.exceptions import DatabaseError
  from prestodb.transaction import IsolationLevel
  from airflow.configuration import conf
  from airflow.exceptions import AirflowException
  from airflow.providers.common.sql.hooks.sql import DbApiHook
  from airflow.utils.operator_helpers import AIRFLOW_VAR_NAME_FORMAT_MAPPING, DEFAULT_FORMAT_PREFIX
label_desc: Use image node_id 6 for calling the PrestoHook obj's underlying member method code with example usage: obj.get_pandas_df(sql, parameters) and returns: df