Pandas: como dividir uma coluna de listas em múltiplas colunas


Você pode usar a seguinte sintaxe básica para dividir uma coluna de listas em várias colunas em um DataFrame do pandas:

 #split column of lists into two new columns
split = pd. DataFrame (df[' my_column ']. to_list (), columns = [' new1 ',' new2 '])

#join split columns back to original DataFrame
df = pd. concat ([df, split], axis= 1 )

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: divida uma coluna de listas em múltiplas colunas no Pandas

Suponha que temos o seguinte DataFrame do pandas no qual a coluna chamada pontos contém listas de valores:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavs', 'Heat', 'Kings', 'Suns'],
                   ' points ': [[99, 105], [94, 113], [99, 97], [87, 95]]})

#view DataFrame
print (df)

    team points
0 Mavs [99, 105]
1 Heat [94, 113]
2 Kings [99, 97]
3 Suns [87, 95]

Podemos usar a seguinte sintaxe para criar um novo DataFrame no qual a coluna de pontos é dividida em duas novas colunas chamadas game1 e game2 :

 #split column of lists into two new columns
split = pd. DataFrame (df[' my_column ']. to_list (), columns = [' new1 ',' new2 '])

#view DataFrame
print (split)

   game1 game2
0 99 105
1 94 113
2 99 97
3 87 95

Se desejarmos, podemos juntar este DataFrame dividido com o DataFrame original usando a função concat() :

 #join split columns back to original DataFrame
df = pd. concat ([df, split], axis= 1 ) 

#view updated DataFrame
print (df)

    team points game1 game2
0 Mavs [99, 105] 99 105
1 Heat [94, 113] 94 113
2 Kings [99, 97] 99 97
3 Suns [87, 95] 87 95

Finalmente, podemos remover a coluna de pontos original do DataFrame se quisermos:

 #drop original points column
df = df. drop (' points ', axis= 1 )

#view updated DataFrame
print (df)

    team game1 game2
0 Mavs 99 105
1 Heat 94 113
2 Kings 99 97
3 Suns 87 95

O resultado final é um DataFrame no qual a coluna de pontos original das listas agora é dividida em duas novas colunas chamadas game1 e game2 .

Nota : Se sua coluna de listas contiver um número ímpar de valores em cada lista, o pandas simplesmente preencherá os valores ausentes com valores NaN ao dividir as listas em colunas.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns em pandas:

Como imprimir Pandas DataFrame sem índice
Como exibir todas as linhas em um DataFrame do Pandas
Como verificar o tipo de todas as colunas no Pandas DataFrame

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *