Pandas: как разделить столбец списков на несколько столбцов


Вы можете использовать следующий базовый синтаксис, чтобы разделить столбец списков на несколько столбцов в DataFrame 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 )

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: разделить столбец списков на несколько столбцов в Pandas

Предположим, у нас есть следующий DataFrame pandas, в котором столбец с именем Points содержит списки значений:

 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]

Мы можем использовать следующий синтаксис для создания нового DataFrame, в котором столбец очков разделен на два новых столбца, называемых game1 и 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

Если мы захотим, мы можем затем соединить этот разделенный DataFrame с исходным DataFrame, используя функцию 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

Наконец, мы можем удалить исходный столбец точек из DataFrame, если захотим:

 #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

Конечным результатом является DataFrame, в котором исходный столбец списков точек теперь разделен на два новых столбца, называемых game1 и game2 .

Примечание . Если ваш столбец списков содержит нечетное количество значений в каждом списке, pandas просто заполнит недостающие значения значениями NaN при разбиении списков на столбцы.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

Как распечатать Pandas DataFrame без индекса
Как отобразить все строки в DataFrame Pandas
Как проверить тип всех столбцов в Pandas DataFrame

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *