code: def extract_exif_series(image_exifs: list) -> dict:
      """
  
      Args:
          image_exifs:
  
      Returns:
  
      """
      exif_keys = []
      exif_values: dict = {}
  
      for image_exif in image_exifs:
          # Extract key
          exif_keys.extend(list(image_exif.keys()))
  
          # Extract values per key
          for exif_key, exif_val in image_exif.items():
              if exif_key not in exif_values:
                  exif_values[exif_key] = []
  
              exif_values[exif_key].append(exif_val)
  
      series = {
          "exif_keys": pd.Series(exif_keys, dtype=object)
          .value_counts()
          .to_dict()
      }
  
      for k, v in exif_values.items():
          series[k] = pd.Series(v).value_counts()
  
      return series
  
imports: import imghdr
  from functools import partial
  from pathlib import Path
  from typing import Optional, Tuple, Union
  import imagehash
  import pandas
  from PIL import ExifTags, Image
  from ydata_profiling.config import Settings
  from ydata_profiling.model.summary_algorithms import describe_image_1d, named_aggregate_summary
  from ydata_profiling.utils.imghdr_patch import *
label_desc: Use image node_id 9 for calling a global function with example usage: extract_exif_series(image_exifs) and returns: series