Разделить списки в столбце данных на несколько столбцов - PullRequest
0 голосов
/ 22 мая 2018

У меня есть столбец Pandas DataFrame с несколькими списками в списке.Примерно так:

df
     col1
0    [[1,2], [2,3]]
1    [[a,b], [4,5], [x,y]] 
2    [[6,7]]

Я хочу разбить список на несколько столбцов, чтобы на выходе было что-то вроде:

    col1    col2     col3
0   [1,2]   [2,3]   
1   [a,b]   [4,5]    [x,y]
2   [6,7]

Пожалуйста, помогите мне с этим.Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Вы можете использовать pd.Series.apply:

df = pd.DataFrame({'col1': [[[1, 2], [2, 3]],
                            [['a', 'b'], [4, 5], ['x', 'y']],
                            [[6, 7]]]})

res = df['col1'].apply(pd.Series)

print(res)

        0       1       2
0  [1, 2]  [2, 3]     NaN
1  [a, b]  [4, 5]  [x, y]
2  [6, 7]     NaN     NaN
0 голосов
/ 22 мая 2018

Я думаю, что нужен DataFrame конструктор, если производительность важна:

df = pd.DataFrame(df['col1'].values.tolist())
print (df)
        0       1       2
0  [1, 2]  [2, 3]    None
1  [a, b]  [4, 5]  [x, y]
2  [6, 7]    None    None

Если необходимо удалить NaN s - пропущенные значения сначала добавить dropna:

df = pd.DataFrame(df['col1'].dropna().values.tolist())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...