Заполните столбец Dataframe списком, который повторяется для каждого элемента в другом списке - PullRequest
0 голосов
/ 27 июня 2018

У меня есть два списка чисел, которые я хочу использовать для расчета, но они имеют разную длину.

list_1 = [123, 456, 789, 987]

list_2 = [321, 654]

Поскольку всего комбинаций 4x2 = 8, я хочу, чтобы они выводились так:

       Calc_1                    Calc_2
Calc_of_list_1_num_1      Calc_of_list_2_num_1
Calc_of_list_1_num_2      Calc_of_list_2_num_1
Calc_of_list_1_num_3      Calc_of_list_2_num_1
Calc_of_list_1_num_4      Calc_of_list_2_num_1
Calc_of_list_1_num_1      Calc_of_list_2_num_2
Calc_of_list_1_num_2      Calc_of_list_2_num_2
Calc_of_list_1_num_3      Calc_of_list_2_num_2
Calc_of_list_1_num_4      Calc_of_list_2_num_2

Я боролся с этим и просто не знаю, как к нему подойти.

1 Ответ

0 голосов
/ 27 июня 2018

Используйте numpy's np.ufunc.outer :

Пример добавления:

np.add.outer(list_1,list_2)

выход:

array([[ 444,  777],
       [ 777, 1110],
       [1110, 1443],
       [1308, 1641]])

Чтобы создать фрейм данных:

pd.DataFrame(np.add.outer(list_1,list_2), columns=list_2, index=list_1)

Выход:

      321   654
123   444   777
456   777  1110
789  1110  1443
987  1308  1641

Для умножения используйте np.outer:

np.outer(list_1,list_2)

Выход:

array([[ 39483,  80442],
       [146376, 298224],
       [253269, 516006],
       [316827, 645498]])

А для фрейма данных:

pd.DataFrame(np.outer(list_1,list_2), columns=list_2, index=list_1)

Выход:

        321     654
123   39483   80442
456  146376  298224
789  253269  516006
987  316827  645498
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...