class_docstr: FixDQ is a great way to clean an entire train data set and apply the same steps in 
  an MLOps pipeline to a test dataset. FixDQ can be used to detect most issues in 
  your data (similar to data_cleaning_suggestions but without the `target` 
  related issues) in one step. Then it fixes those issues it finds during the 
  `fit` method by the `transform` method. This transformer can then be saved 
  (or "pickled") for applying the same steps on test data either at the same 
  time or later.
  
  FixDQ will perform following data quality cleaning steps:
      It removes ID columns from further processing
      It removes zero-variance columns from further processing
      It identifies rare categories and groups them into a single category 
                  called "Rare"
      It finds infinite values and replaces them with an upper bound based on 
                  Inter Quartile Range
      It detects mixed data types and drops those mixed-type columns from 
                  further processing
      It detects outliers and suggests to remove them or use robust statistics.
      It detects high cardinality features but leaves them as it is.
      It detects highly correlated features and drops one of them (whichever 
                  comes first in the column sequence)
      It detects duplicate rows and drops one of them or keeps only one copy 
                  of duplicate rows
      It detects duplicate columns and drops one of them or keeps only one copy
      It detects skewed distributions and applies log or box-cox 
                  transformations on them
      It detects imbalanced classes and leaves them as it is
      It detects feature leakage and drops one of those features if 
                  they are highly correlated to target
code: def __init__(
      self,
      quantile=0.87,
      cat_fill_value="missing",
      num_fill_value=9999,
      rare_threshold=0.01,
      correlation_threshold=0.9,
  ):
      super().__init__()  # Call the parent class constructor
      # Additional initialization code here
      self.quantile = quantile
      self.cat_fill_value = cat_fill_value
      self.num_fill_value = num_fill_value
      self.rare_threshold = rare_threshold
      self.correlation_threshold = correlation_threshold
  
imports: import pandas
  import numpy
  from pathlib import Path
  import os
  import warnings
  import warnings
  from sklearn.exceptions import DataConversionWarning
  import matplotlib
  import matplotlib.pyplot
  import io
  import seaborn
  import re
  import pprint
  import matplotlib
  from itertools import cycle, combinations
  from collections import defaultdict
  import copy
  import time
  import sys
  import random
  import xlrd
  import statsmodels
  from io import BytesIO
  import base64
  from functools import reduce
  import traceback
  import xgboost
  from xgboost.sklearn import XGBClassifier
  from xgboost.sklearn import XGBRegressor
  from sklearn.model_selection import train_test_split
  from autoviz.AutoViz_Holo import AutoViz_Holo
  from autoviz.AutoViz_Utils import save_image_data, analyze_problem_type, draw_pivot_tables, draw_scatters
  from autoviz.AutoViz_Utils import draw_pair_scatters, plot_fast_average_num_by_cat, draw_barplots, draw_heatmap
  from autoviz.AutoViz_Utils import draw_distplot, draw_violinplot, draw_date_vars, catscatter, draw_catscatterplots
  from autoviz.AutoViz_Utils import list_difference, search_for_word_in_list, analyze_ID_columns, start_classifying_vars
  from autoviz.AutoViz_Utils import analyze_columns_in_dataset, find_remove_duplicates, load_file_dataframe, classify_print_vars
  from autoviz.AutoViz_Utils import marthas_columns, EDA_find_remove_columns_with_infinity, return_dictionary_list
  from autoviz.AutoViz_Utils import remove_variables_using_fast_correlation, count_freq_in_list, find_corr_vars, left_subtract
  from autoviz.AutoViz_Utils import convert_train_test_cat_col_to_numeric, return_factorized_dict, convert_a_column_to_numeric
  from autoviz.AutoViz_Utils import convert_all_object_columns_to_numeric, find_top_features_xgb, convert_a_mixed_object_column_to_numeric
  from autoviz.AutoViz_NLP import draw_word_clouds
  from pandas_dq import Fix_DQ
  from pandas_dq import dq_report
label_desc: Use image node_id 1 to create a new FixDQ object from inherited base classes: Fix_DQ with example: obj = FixDQ(quantile, cat_fill_value, num_fill_value, rare_threshold, correlation_threshold)