code: def empty_cpd() -> pd.DataFrame:
      """Create an empty CPD table"""
      parents = {"d": {True, False}, "e": {True, False}}
      tuples = tuple(
          itertools.product(
              *[tuple(states) for _, states in parents.items()]
          )
      )
      index = pd.MultiIndex.from_tuples(
          tuples, names=list(parents.keys())
      )
      df = pd.DataFrame(np.NaN, index=["x", "y", "z"], columns=index)
      df.index.name = "b"
      return df
  
imports: import itertools
  from typing import Dict
  import numpy
  import pandas
  import pytest
  from pgmpy.models import BayesianNetwork
  from sklearn.datasets import load_iris
  from causalnex.discretiser import Discretiser
  from causalnex.network import BayesianNetwork
  from causalnex.structure import StructureModel
  from causalnex.structure.notears import from_pandas
label_desc: Use image node_id 17 for calling a global function with example usage: empty_cpd() and returns: df