Преобразование строк данных Pandas в списки пар - PullRequest
0 голосов
/ 10 октября 2019

Вопрос ОБНОВЛЕН *

Как преобразовать фрейм данных следующим образом:

df = 

 0   1   2   3   4   5   6   7   8   9  10  11

 1   2   3   4   5   6 NaN NaN NaN NaN NaN NaN
 7   8   9  10  11  12 NaN NaN NaN NaN NaN NaN
13  14  15  16  17  18 NaN NaN NaN NaN NaN NaN

К списку точно так же (с пропуском NaN):

df_list = 

    [array([[ 1, 2],
            [ 3, 4],
            [ 5, 6]]), array([[ 7, 8],
            [ 9, 10],
            [ 11, 12]]), array([[ 13, 14],
            [ 15, 16],
            [ 17, 18]])]

У меня естьпробовал df1.values.tolist() но это не дает мне пары

будущий фрейм данных должен быть таким

Ответы [ 2 ]

1 голос
/ 10 октября 2019

Укажите, сколько предметов вы хотите в каждой группе, и используйте numpy * reshape


n = 2

df.to_numpy().reshape(df.shape[0], -1, n)

array([[[ 1,  2],
        [ 3,  4],
        [ 5,  6]],

       [[ 7,  8],
        [ 9, 10],
        [11, 12]],

       [[13, 14],
        [15, 16],
        [17, 18]]], dtype=int64)
0 голосов
/ 10 октября 2019

Для точного соответствия:

[df.loc[i].to_numpy().reshape(-1,2) for i in df.index]

Вывод:

[array([[1, 2],
        [3, 4],
        [5, 6]], dtype=int64), array([[ 7,  8],
        [ 9, 10],
        [11, 12]], dtype=int64), array([[13, 14],
        [15, 16],
        [17, 18]], dtype=int64)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...