class_docstr: Wrapper class to allow pandas objects (DataFrames or Series) to be hashable
class_docstr_tok: ["Wrapper","class","to","allow","pandas","objects","(","DataFrames","or","Series",")","to","be","hashable"]
docstr: Overwrite hash operator for use with pandas objects
  
  Returns:
      int: hashed value of object
docstr_tok: ["Overwrite","hash","operator","for","use","with","pandas","objects","Returns",":","int",":","hashed","value","of","object"]
code: def __hash__(self):
      """Overwrite hash operator for use with pandas objects
  
      Returns:
          int: hashed value of object
      """
  
      hashable = tuple(self.pandas_object.values.tobytes())
      if isinstance(self.pandas_object, pd.DataFrame):
          hashable += tuple(self.pandas_object.columns)
      else:
          hashable += tuple(self.pandas_object.name)
      return hash(hashable)
  
imports: import logging
  import pandas
  import numpy
  from functools import lru_cache, wraps
  from recommenders.utils.constants import DEFAULT_USER_COL, DEFAULT_ITEM_COL, DEFAULT_RATING_COL, DEFAULT_LABEL_COL
label_desc: Use image node_id 3 for calling the PandasHash obj's underlying member method code with example usage: obj.__hash__() and returns: hash