code: def setup(self, dtype):
      m = 100
      n = 1000
  
      levels = np.arange(m)
      index = MultiIndex.from_product([levels] * 2)
      columns = np.arange(n)
      if dtype == "int":
          values = np.arange(m * m * n).reshape(m * m, n)
          self.df = DataFrame(values, index, columns)
      else:
          # the category branch is ~20x slower than int. So we
          # cut down the size a bit. Now it's only ~3x slower.
          n = 50
          columns = columns[:n]
          indices = np.random.randint(0, 52, size=(m * m, n))
          values = np.take(list(string.ascii_letters), indices)
          values = [pd.Categorical(v) for v in values.T]
  
          self.df = DataFrame(dict(enumerate(values)), index, columns)
  
      self.df2 = self.df.iloc[:-1]
  
imports: from itertools import product
  import string
  import numpy
  import pandas
  from pandas import DataFrame, MultiIndex, date_range, melt, wide_to_long
  from pandas.api.types import CategoricalDtype
  from .pandas_vb_common import setup
label_desc: Use image node_id 1 for calling the Unstack obj's underlying member method code with example usage: obj.setup(dtype) without return types