parameters: (
          self,
          d: Dict,
          value,
          selector,
          data_columns=None,
          axes=None,
          dropna=False,
          **kwargs,
      )
docstring: Append to multiple tables
  
          Parameters
          ----------
          d : a dict of table_name to table_columns, None is acceptable as the
              values of one node (this will get all the remaining columns)
          value : a pandas object
          selector : a string that designates the indexable table; all of its
              columns will be designed as data_columns, unless data_columns is
              passed, in which case these are used
          data_columns : list of columns to create as data columns, or True to
              use all columns
          dropna : if evaluates to True, drop rows from all tables if any single
                   row in each table has all NaN. Default False.
  
          Notes
          -----
          axes parameter is currently not accepted
docstring_summary: Append to multiple tables
docstring_tokens: Append to multiple tables
function: def append_to_multiple(
          self,
          d: Dict,
          value,
          selector,
          data_columns=None,
          axes=None,
          dropna=False,
          **kwargs,
      ):
          """
          Append to multiple tables
  
          Parameters
          ----------
          d : a dict of table_name to table_columns, None is acceptable as the
              values of one node (this will get all the remaining columns)
          value : a pandas object
          selector : a string that designates the indexable table; all of its
              columns will be designed as data_columns, unless data_columns is
              passed, in which case these are used
          data_columns : list of columns to create as data columns, or True to
              use all columns
          dropna : if evaluates to True, drop rows from all tables if any single
                   row in each table has all NaN. Default False.
  
          Notes
          -----
          axes parameter is currently not accepted
  
          """
          if axes is not None:
              raise TypeError(
                  "axes is currently not accepted as a parameter to append_to_multiple; "
                  "you can create the tables independently instead"
              )
  
          if not isinstance(d, dict):
              raise ValueError(
                  "append_to_multiple must have a dictionary specified as the "
                  "way to split the value"
              )
  
          if selector not in d:
              raise ValueError(
                  "append_to_multiple requires a selector that is in passed dict"
              )
  
          # figure out the splitting axis (the non_index_axis)
          axis = list(set(range(value.ndim)) - set(_AXES_MAP[type(value)]))[0]
  
          # figure out how to split the value
          remain_key = None
          remain_values: List = []
          for k, v in d.items():
              if v is None:
                  if remain_key is not None:
                      raise ValueError(
                          "append_to_multiple can only have one value in d that "
                          "is None"
                      )
                  remain_key = k
              else:
                  remain_values.extend(v)
          if remain_key is not None:
              ordered = value.axes[axis]
              ordd = ordered.difference(Index(remain_values))
              ordd = sorted(ordered.get_indexer(ordd))
              d[remain_key] = ordered.take(ordd)
  
          # data_columns
          if data_columns is None:
              data_columns = d[selector]
  
          # ensure rows are synchronized across the tables
          if dropna:
              idxs = (value[cols].dropna(how="all").index for cols in d.values())
              valid_index = next(idxs)
              for index in idxs:
                  valid_index = valid_index.intersection(index)
              value = value.loc[valid_index]
  
          # append
          for k, v in d.items():
              dc = data_columns if k == selector else None
  
              # compute the val
              val = value.reindex(v, axis=axis)
  
              self.append(k, val, data_columns=dc, **kwargs)
function_tokens: def append_to_multiple ( self , d : Dict , value , selector , data_columns = None , axes = None , dropna = False , * * kwargs , ) : if axes is not None : raise TypeError ( "axes is currently not accepted as a parameter to append_to_multiple; " "you can create the tables independently instead" ) if not isinstance ( d , dict ) : raise ValueError ( "append_to_multiple must have a dictionary specified as the " "way to split the value" ) if selector not in d : raise ValueError ( "append_to_multiple requires a selector that is in passed dict" ) # figure out the splitting axis (the non_index_axis) axis = list ( set ( range ( value . ndim ) ) - set ( _AXES_MAP [ type ( value ) ] ) ) [ 0 ] # figure out how to split the value remain_key = None remain_values : List = [ ] for k , v in d . items ( ) : if v is None : if remain_key is not None : raise ValueError ( "append_to_multiple can only have one value in d that " "is None" ) remain_key = k else : remain_values . extend ( v ) if remain_key is not None : ordered = value . axes [ axis ] ordd = ordered . difference ( Index ( remain_values ) ) ordd = sorted ( ordered . get_indexer ( ordd ) ) d [ remain_key ] = ordered . take ( ordd ) # data_columns if data_columns is None : data_columns = d [ selector ] # ensure rows are synchronized across the tables if dropna : idxs = ( value [ cols ] . dropna ( how = "all" ) . index for cols in d . values ( ) ) valid_index = next ( idxs ) for index in idxs : valid_index = valid_index . intersection ( index ) value = value . loc [ valid_index ] # append for k , v in d . items ( ) : dc = data_columns if k == selector else None # compute the val val = value . reindex ( v , axis = axis ) self . append ( k , val , data_columns = dc , * * kwargs )