docstr: Return features row as kv pairs so that they can be stored in memcache or redis and
  used at serving layer
  :return: a nested hash for each column
docstr_tok: ["Return","features","row","as","kv","pairs","so","that","they","can","be","stored","in","memcache","or","redis","and","used","at","serving","layer",":","return",":","a","nested","hash","for","each","column"]
code: def _features_as_kv(self):
      """
      Return features row as kv pairs so that they can be stored in memcache or redis and
      used at serving layer
      :return: a nested hash for each column
      """
      self._data = self.get_data()
      key_list = self.key()
      values_list = self.values()
      result = {}
      for column in values_list:
          key_prefix = self.cache_key_prefix() + "#" + column
          self._data["cache_key"] = self._data[key_list].apply(
              lambda xdf: key_prefix
              + "="
              + "#".join(xdf.astype(str).values),
              axis=1,
          )
          result[column] = dict(
              zip(
                  self._data.cache_key.values, self._data[column].values
              )
          )
      return result
  
imports: import datetime
  from abc import ABCMeta, abstractmethod
  import lore
  from lore.env import require
  from lore.util import convert_df_columns_to_json
  import pandas
  import inflection
label_desc: Use image node_id 11 for calling the BaseFeatureExporter obj's underlying member method code with example usage: obj._features_as_kv() and returns: result