class_docstr: Stores all actual data and typing information for an entityset
  
  Attributes:
      id
      dataframe_dict
      relationships
      time_type
  
  Properties:
      metadata
class_docstr_tok: ["Stores","all","actual","data","and","typing","information","for","an","entityset","Attributes",":","id","dataframe_dict","relationships","time_type","Properties",":","metadata"]
docstr: Query instances that have column with given value
  
  Args:
      dataframe_name (str): The id of the dataframe to query
      instance_vals (pd.Dataframe, pd.Series, list[str] or str) :
          Instance(s) to match.
      column_name (str) : Column to query on. If None, query on index.
      columns (list[str]) : Columns to return. Return all columns if None.
      time_last (pd.TimeStamp) : Query data up to and including this
          time. Only applies if dataframe has a time index.
      training_window (Timedelta, optional):
          Window defining how much time before the cutoff time data
          can be used when calculating features. If None, all data before cutoff time is used.
      include_cutoff_time (bool):
          If True, data at cutoff time are included in calculating features
  
  Returns:
      pd.DataFrame : instances that match constraints with ids in order of underlying dataframe
docstr_tok: ["Query","instances","that","have","column","with","given","value","Args",":","dataframe_name","(","str",")",":","The","id","of","the","dataframe","to","query","instance_vals","(","pd.Dataframe",",","pd.Series",",","list","[","str","]","or","str",")",":","Instance","(","s",")","to","match",".","column_name","(","str",")",":","Column","to","query","on",".","If","None",",","query","on","index",".","columns","(","list","[","str","]",")",":","Columns","to","return",".","Return","all","columns","if","None",".","time_last","(","pd.TimeStamp",")",":","Query","data","up","to","and","including","this","time",".","Only","applies","if","dataframe","has","a","time","index",".","training_window","(","Timedelta",",","optional",")",":","Window","defining","how","much","time","before","the","cutoff","time","data","can","be","used","when","calculating","features",".","If","None",",","all","data","before","cutoff","time","is","used",".","include_cutoff_time","(","bool",")",":","If","True",",","data","at","cutoff","time","are","included","in","calculating","features","Returns",":","pd.DataFrame",":","instances","that","match","constraints","with","ids","in","order","of","underlying","dataframe"]
code: def query_by_values(
      self,
      dataframe_name,
      instance_vals,
      column_name=None,
      columns=None,
      time_last=None,
      training_window=None,
      include_cutoff_time=True,
  ):
      """Query instances that have column with given value
  
      Args:
          dataframe_name (str): The id of the dataframe to query
          instance_vals (pd.Dataframe, pd.Series, list[str] or str) :
              Instance(s) to match.
          column_name (str) : Column to query on. If None, query on index.
          columns (list[str]) : Columns to return. Return all columns if None.
          time_last (pd.TimeStamp) : Query data up to and including this
              time. Only applies if dataframe has a time index.
          training_window (Timedelta, optional):
              Window defining how much time before the cutoff time data
              can be used when calculating features. If None, all data before cutoff time is used.
          include_cutoff_time (bool):
              If True, data at cutoff time are included in calculating features
  
      Returns:
          pd.DataFrame : instances that match constraints with ids in order of underlying dataframe
      """
      dataframe = self[dataframe_name]
      if not column_name:
          column_name = dataframe.ww.index
  
      instance_vals = _vals_to_series(instance_vals, column_name)
  
      training_window = _check_timedelta(training_window)
  
      if training_window is not None:
          assert (
              training_window.has_no_observations()
          ), "Training window cannot be in observations"
  
      if instance_vals is None:
          df = dataframe.copy()
  
      elif isinstance(instance_vals, pd.Series) and instance_vals.empty:
          df = dataframe.head(0)
  
      else:
          if is_instance(instance_vals, (dd, ps), "Series"):
              df = dataframe.merge(
                  instance_vals.to_frame(),
                  how="inner",
                  on=column_name,
              )
          elif isinstance(instance_vals, pd.Series) and is_instance(
              dataframe,
              ps,
              "DataFrame",
          ):
              df = dataframe.merge(
                  ps.DataFrame({column_name: instance_vals}),
                  how="inner",
                  on=column_name,
              )
          else:
              df = dataframe[dataframe[column_name].isin(instance_vals)]
  
          if isinstance(dataframe, pd.DataFrame):
              df = df.set_index(dataframe.ww.index, drop=False)
  
          # ensure filtered df has same categories as original
          # workaround for issue below
          # github.com/pandas-dev/pandas/issues/22501#issuecomment-415982538
          #
          # Pandas claims that bug is fixed but it still shows up in some
          # cases.  More investigation needed.
          #
          # Note: Woodwork stores categorical columns with a `string` dtype for Spark
          if dataframe.ww.columns[
              column_name
          ].is_categorical and not is_instance(
              df,
              ps,
              "DataFrame",
          ):
              categories = pd.api.types.CategoricalDtype(
                  categories=dataframe[column_name].cat.categories,
              )
              df[column_name] = df[column_name].astype(categories)
  
      df = self._handle_time(
          dataframe_name=dataframe_name,
          df=df,
          time_last=time_last,
          training_window=training_window,
          include_cutoff_time=include_cutoff_time,
      )
  
      if columns is not None:
          df = df[columns]
  
      return df
  
imports: import copy
  import logging
  import warnings
  from collections import defaultdict
  import numpy
  import pandas
  from woodwork import init_series
  from woodwork.logical_types import Datetime, LatLong
  from featuretools.entityset import deserialize, serialize
  from featuretools.entityset.relationship import Relationship, RelationshipPath
  from featuretools.feature_base.feature_base import _ES_REF
  from featuretools.utils.gen_utils import Library, import_or_none, is_instance
  from featuretools.utils.plot_utils import check_graphviz, get_graphviz_format, save_graph
  from featuretools.utils.wrangle import _check_timedelta
label_desc: Use image node_id 39 for calling the EntitySet obj's underlying member method code with example usage: obj.query_by_values(dataframe_name, instance_vals, column_name, columns, time_last, training_window, include_cutoff_time) and returns: df