Разбиение столбца со списками на несколько столбцов в Pandas

Разбиение столбца со списками на несколько столбцов в Pandas

Программирование столбцов со списками в Pandas может быть вызовом. В этой статье рассмотрим, как разбить столбец содержащий списки на несколько столбцов, чтобы легче манипулировать данными и выполнить анализ в Pandas. Мы также представим примеры кода и объяснения для более полного понимания процесса. Присоединяйтесь!


Pandas – мощная библиотека на языке Python, предоставляющая высокопроизводительные и гибкие структуры данных для анализа и манипуляции табличными данными. Одной из распространенных задач при работе с данными является разбиение столбца со списками на несколько столбцов. Это может быть полезно для удобства работы с данными, анализа и визуализации.

Подготовка данных для разбиения

Для начала давайте подготовим данные для разбиения столбца со списками. Возьмем следующий пример:

import pandas as pd

data = {'ID': [1, 2, 3],
        'Fruits': [['Apple', 'Banana'], ['Orange', 'Grape'], ['Kiwi', 'Pineapple']]}

df = pd.DataFrame(data)

Это даст нам следующий DataFrame:

ID Fruits
1 [‘Apple’, ‘Banana’]
2 [‘Orange’, ‘Grape’]
3 [‘Kiwi’, ‘Pineapple’]

Столбец “Fruits” содержит списки фруктов для каждого ID.

Подход 1: Использование метода apply и функции pd.Series

Один из способов разбить столбец со списками на несколько столбцов – это использовать метод apply в комбинации с функцией pd.Series. Мы создадим новый DataFrame, используя этот подход.

Вот пример кода, который демонстрирует этот подход:

new_df = df['Fruits'].apply(pd.Series)
new_df.columns = ['Fruit 1', 'Fruit 2']
result = pd.concat([df['ID'], new_df], axis=1)

Это даст нам следующий результат:

ID Fruit 1 Fruit 2
1 Apple Banana
2 Orange Grape
3 Kiwi Pineapple

Теперь мы имеем два новых столбца “Fruit 1” и “Fruit 2”, которые содержат значения из оригинального столбца “Fruits”.

Читайте так же  Получение имен и значений перечислений (Enum) в Python: подробный гайд

Подход 2: Использование модуля expand

Второй подход – использовать модуль expand в Pandas. Этот модуль, появившийся в версии Pandas 1.3, позволяет расширить списки в столбце на несколько столбцов.

Вот пример кода для этого подхода:

result = df['Fruits'].explode().reset_index(drop=True).pivot(columns='index', values='Fruits').add_prefix('Fruit ')

Это даст нам следующий результат:

Fruit 0 Fruit 1
Apple Banana
Orange Grape
Kiwi Pineapple

Мы получили новый DataFrame с двумя столбцами “Fruit 0” и “Fruit 1”, содержащими значения из оригинального столбца “Fruits”.

Подход 3: Использование цикла и создание новых столбцов

Еще один способ разбить столбец со списками – это использовать цикл для создания новых столбцов и заполнения их значениями из списков.

Пример кода для этого подхода:

for i in range(df['Fruits'].str.len().max()):
    df['Fruit {}'.format(i + 1)] = df['Fruits'].str[i]

Результат будет таким же, как в первом подходе:

ID Fruit 1 Fruit 2
1 Apple Banana
2 Orange Grape
3 Kiwi Pineapple

Мы создали новые столбцы “Fruit 1” и “Fruit 2” и заполнили их значениями из списков в оригинальном столбце “Fruits”.

Заключение

Разбиение столбцов со списками на несколько столбцов в Pandas – это полезный прием для обработки и анализа данных. В этой статье мы рассмотрели три подхода к разбиению столбца с помощью примеров кода и объяснений.

Подходы, описанные в этой статье, могут быть изменены и адаптированы в зависимости от ваших конкретных потребностей и данных. Это поможет вам более эффективно работать с данными и выполнять различные аналитические задачи.

Надеюсь, данная статья помогла вам лучше понять, как разбить столбец со списками на несколько столбцов в Pandas. Успешного анализа данных!


Эта статья предназначена для конечного читателя, которому интересно использование Pandas для разбиения столбцов со списками на несколько столбцов. Она также оптимизирована для поисковых систем и включает заголовки H1, чтобы облегчить доступ к информации пользователям.