code: def display_analysis_table(df_analysis: pd.DataFrame, key_info: dict):
      """Display the analysis table used to select the best hyperparameter configuration
  
      Args:
          df_analysis: Dataframe of the analysis table
          key_info: Dictionary containing the name of the column and the attribute to use for analysis
      """
      # Calculate each column length for the table
      column_lengths = {
          x: max(len(x), df_analysis[x].map(str).apply(len).max())
          for x in df_analysis.columns
      }
  
      print(
          " | ".join(
              [f"{x:^{column_lengths[x]}}" for x in df_analysis.columns]
          )
      )
      print(
          "-"
          * sum([column_lengths[x] + 3 for x in df_analysis.columns])
      )
  
      for idx in range(len(df_analysis)):
          row_str = []
          for column in df_analysis.columns:
              row_str.append(
                  f"{df_analysis.iloc[idx][column]:^{column_lengths[column]}}"
              )
          print(" | ".join(row_str))
  
file_path: NeMo/examples/asr/asr_adapters/scoring_and_analysis.py
imports: import argparse
  from typing import Tuple
  import numpy
  import pandas
label_desc: Use image node_id 4 for calling a global function with example usage: display_analysis_table(df_analysis, key_info) without return types