code: def get_analysis(data_id):
      df = global_state.get_data(data_id)
      valid_corr_cols, _, _ = get_col_groups(data_id, df)
      corr_matrix, _ = build_matrix(
          data_id,
          df,
          valid_corr_cols,
          {"corr_cols": "", "str_encodings": ""},
      )
      corr_matrix = corr_matrix.abs()
  
      # Select upper triangle of correlation matrix
      upper = corr_matrix.where(
          np.triu(np.ones(corr_matrix.shape), k=1).astype(np.bool_)
      )
  
      score = upper.max(axis=1)
      score.name = "score"
      score = score.sort_values(ascending=False)
  
      upper = upper.loc[score.index]
      column_name = upper.index[0]
      max_score = score.loc[column_name]
      if pd.isnull(max_score):
          max_score = "N/A"
      upper = upper.fillna(0).to_dict(orient="index")
  
      missing = df[valid_corr_cols].isna().sum()
      missing.name = "missing"
  
      analysis = pd.concat([score, missing], axis=1)
      analysis.index.name = "column"
      analysis = (
          analysis.fillna("N/A").reset_index().to_dict(orient="records")
      )
  
      return column_name, max_score, upper, analysis
  
file_path: dtale/dtale/correlations.py
imports: import numpy
  import pandas
  import dtale.global_state
  from dtale.code_export import build_code_export
  from dtale.utils import classify_type, dict_merge
label_desc: Use image node_id 3 for calling a global function with example usage: get_analysis(data_id) and returns: column_name,  max_score,  upper,  analysis