Сохранить кортеж массивов (?) В качестве фрейма данных - PullRequest
0 голосов
/ 02 июля 2019

У меня есть функция в Python, которая возвращает пять массивов.Я хотел бы превратить эти массивы в фрейм данных result.Я опущу тело функции для краткости, но вот как выглядит мой код:

def runmodel():
   ## omitting code for brevity
return a, b, c, d, e

А потом, когда я запускаю run model, я получаю весь этот код, возвращаемый для переменных a,b,c,d,e.

> run()
(array([[ 0.        ,  0.        ,  7.61377153,  0.        ,  0.        ,
      0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
      2.20431486,  0.        ,  0.        ,  0.        ,  0.        ,
      0.        ,  0.        ,  0.        , 13.94209173,  0.        ,
      0.50471147, 18.42825281,  0.        ,  0.        ,  0.        ,
      0.        ,  0.        ,  2.03488863,  0.        ,  0.        ,
      0.        ,  0.        ,  1.44420213,  0.        ,  0.        ,
      0.        , 24.76959413,  0.        ,  1.83168143,  0.        ,
      0.        ,  0.        ,  0.        ,  1.0522511 ,  0.        ,
      0.        ,  1.87509854,  0.        ,  0.        ,  0.        ,
     11.36184872,  0.        , 16.59942782,  0.        ,  0.        ,
     17.33892885,  0.        ,  0.        ,  0.        ,  0.        ,
      0.        ,  0.        ,  1.28199479, 31.76130032,  0.        ,
      0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
     10.29176791, 12.05028586,  5.95222179,  0.        ,  0.        ,
      0.        ,  0.        ,  0.        ,  0.        ,  0.        ,
      2.82531264,  0.        ,  0.        ,  1.62874439,  0.        ,
      4.63870345,  0.        ,  0.        ,  6.47953447,  0.        ,
      0.        ,  0.        ,  0.        , 17.67837878, 11.08462275,
      0.        , 26.08591628,  4.91841726,  0.        , 12.21861283,
      0.        ,  0.        ,  1.46213229,  0.        ,  0.        ,
      0.        ,  0.        ,  0.        ,  0.        ,  1.36157407,
     11.74428328,  0.        ,  0.        ,  0.        ,  0.        ,
     10.21569859,  4.02472319,  8.60214736,  6.64881891, 28.73018726]]),
 array([25.]),
 array([1.]),
 array([0.]),
 array([0.]))

Итак, мой вопрос двоякий:

  1. Каков технический термин для конкретного результата runmodel?Это список массивов или набор массивов ... или что-то еще?
  2. Как я могу превратить эти массивы в один кадр данных?Это вообще возможно или они разной длины?

Для второй части я попытался добавить строку result = pd.dataframe({'a':a, 'b':b, 'c':c, 'd':d}) в runmodel, но затем я получил ошибку;UnboundLocalError: local variable 'result' referenced before assignment.

Помощь с благодарностью.Извините, если это ужасный вопрос: я даже не знаю, с чего начать.

1 Ответ

0 голосов
/ 02 июля 2019

Конкретный вывод runmodel - это кортеж массивов. Чтобы вернуть их в виде фрейма данных, вы можете сделать следующее:

def runmodel():
   ## omitting code for brevity
   result =  pd.DataFrame({
    'Title for a': a,
    'Title for b': b,
    'Title for c': c,
    'Title for d': d,
    'Title for e': e,
    })
   return result

Во избежание ошибки «UnboundLocalError: локальная переменная« результат », на которую ссылаются перед присваиванием», убедитесь, что не используете свою переменную результата, прежде чем фактически назначить ее для фрейма данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...