code: def update_record(self, name, new_data, condition, update_only=False,
                        debug=False):
          
          # add numeric index column temporarily
          self.df['num'] = list(range(len(self.df)))
          df_data = self.df
          condition2 = (df_data.index == name)
          # edit first of existing data that meets condition
          if len(df_data[condition & condition2]) > 0:  #we have one or more records to update or delete
              # list of all rows where condition is true and index == name
              inds = df_data[condition & condition2]['num']
              #inds = df_data[condition]['num'] # list of all rows where condition is true
              existing_data = dict(df_data.iloc[inds.iloc[0]]) # get first record of existing_data from dataframe
              existing_data.update(new_data) # update existing data with new interpretations
              # update row
              self.update_row(inds.iloc[0], existing_data)
              # now remove all the remaining records of same condition
              if len(inds) > 1:
                  for ind in inds[1:]:
                      print("deleting redundant records for:", name)
                      df_data = self.delete_row(ind)
          else:
              if update_only:
                  print("no record found for that condition, not updating ", name)
              else:
                  print('no record found - creating new one for ', name)
                  # add new row
                  df_data = self.add_row(name, new_data)
          # sort so that all rows for an item are together
          df_data.sort_index(inplace=True)
          # redo temporary index
          df_data['num'] = list(range(len(df_data)))
          self.df = df_data
          return df_data
docs: Find the first row in self.df with index == name
          and condition == True.
          Update that record with new_data, then delete any
          additional records where index == name and condition == True.
          Change is inplace