code: def accinfo_query(self, trd_env=TrdEnv.REAL, acc_id=0, acc_index=0):
          
          ret, msg = self._check_trd_env(trd_env)
          if ret != RET_OK:
              return ret, msg
  
          ret, msg, acc_id = self._check_acc_id_and_acc_index(trd_env, acc_id, acc_index)
          if ret != RET_OK:
              return ret, msg
  
          query_processor = self._get_sync_query_processor(
              AccInfoQuery.pack_req, AccInfoQuery.unpack_rsp)
  
          kargs = {
              'acc_id': int(acc_id),
              'trd_env': trd_env,
              'trd_market': self.__trd_mkt,
              'conn_id': self.get_sync_conn_id()
          }
  
          ret_code, msg, accinfo_list = query_processor(**kargs)
          if ret_code != RET_OK:
              return RET_ERROR, msg
  
          col_list = [
              'power', 'total_assets', 'cash', 'market_val', 'frozen_cash', 'avl_withdrawal_cash'
          ]
          accinfo_frame_table = pd.DataFrame(accinfo_list, columns=col_list)
  
          return RET_OK, accinfo_frame_table
docs: :param trd_env:
          :param acc_id:
          :param acc_index:
          :return: