Как заполнить столбец данных Pandas разных размеров значениями Nan - PullRequest
0 голосов
/ 06 октября 2018

Есть ли способ выровнять размер списка в столбце данных, который выглядит следующим образом:

0             [2116.0, 6999.0, 2116.0, 2166.0, 2503.0]
1                             [2113.0, 6999.0, 2314.0]
2             [2111.0, 6999.0, 2111.0, 2362.0, 2503.0]
3                     [2100.0, 6999.0, 2362.0, 2113.0]
4                     [2111.0, 6999.0, 2111.0, 2503.0]

с чем-то вроде этого (Nan в конце списка):

0             [2116.0, 6999.0, 2116.0, 2166.0, 2503.0]
1             [2113.0, 6999.0, 2314.0, NaN,       NaN]
2             [2111.0, 6999.0, 2111.0, 2362.0, 2503.0]
3             [2100.0, 6999.0, 2362.0, 2113.0,    NaN]
4             [2111.0, 6999.0, 2111.0, 2503.0,    NaN]

1 Ответ

0 голосов
/ 06 октября 2018

Вы можете создать новый DataFrame для заполнения.Поскольку создание DataFrame с этими значениями заполняет NaN для пропущенных значений по умолчанию, вы можете затем агрегировать до list по первой оси, чтобы добавить необходимые отступы в список.

Предполагая, что имя столбца равно0:

pd.DataFrame(df[0].values.tolist()).agg(list, 1)

0    [2116.0, 6999.0, 2116.0, 2166.0, 2503.0]
1          [2113.0, 6999.0, 2314.0, nan, nan]
2    [2111.0, 6999.0, 2111.0, 2362.0, 2503.0]
3       [2100.0, 6999.0, 2362.0, 2113.0, nan]
4       [2111.0, 6999.0, 2111.0, 2503.0, nan]

Однако

Как правило, это неуместныйхранить списки в DataFrames.Почему бы просто не расширить списки на свои собственные столбцы?Это также приведет к заполнению NaN:

pd.DataFrame(df[0].values.tolist())

        0       1       2       3       4
0  2116.0  6999.0  2116.0  2166.0  2503.0
1  2113.0  6999.0  2314.0     NaN     NaN
2  2111.0  6999.0  2111.0  2362.0  2503.0
3  2100.0  6999.0  2362.0  2113.0     NaN
4  2111.0  6999.0  2111.0  2503.0     NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...