Преобразование Pandas DataFrame в Список

В этом посте вы узнаете, как преобразовать DataFrame в Pandas в список, включая список списков, список кортежей и список словарей. Умение преобразовывать DataFrame в Pandas в различные форматы позволяет вам работать с различными библиотеками, которые могут не принимать DataFrame в Pandas. Pandas предоставляет вам большое количество вариантов для конвертации ваших данных в другие форматы.

К концу этого урока вы узнаете:

  • Как преобразовать DataFrame Pandas в список списков

  • Как преобразовать столбец (или серию) DataFrame Pandas в список

  • Как преобразовать DataFrame Pandas в список кортежей

  • Как преобразовать DataFrame Pandas в список словарей

Оглавление

Загрузка образца DataFrame Pandas

Ниже вы найдете код для загрузки примера DataFrame Pandas, который вы можете использовать для сопровождения. Если у вас есть свой набор данных, не стесняйтесь использовать его. Однако ваши результаты, конечно, будут отличаться.

# Loading a Sample Pandas DataFrame
import pandas as pd

df = pd.DataFrame({
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra'],
    'Age': [33, 34, 43, 44],
    'Score': [90, 95, 93, 92]
})

print(df)

# Returns:
#    Name  Age  Score
# 0   Nik   33     90
# 1  Kate   34     95
# 2  Evan   43     93
# 3  Kyra   44     92

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

Преобразование фрейма данных Pandas в список списков

В этом разделе вы научитесь преобразовывать DataFrame в список списков. У DataFrame в Pandas есть атрибут .values, который содержит все значения DataFrame, представленные в виде массива NumPy. У массивов NumPy есть метод .tolist(), который позволяет преобразовать массив в список.

Давайте посмотрим, как это выглядит:

# Convert a Pandas DataFrame to a List of Lists
import pandas as pd

df = pd.DataFrame({
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra'],
    'Age': [33, 34, 43, 44],
    'Score': [90, 95, 93, 92]
})

values = df.values.tolist()
print(values)

# Returns:
# [['Nik', 33, 90], ['Kate', 34, 95], ['Evan', 43, 93], ['Kyra', 44, 92]]

В приведенном выше блоке кода мы получили доступ к значениям DataFrame и затем применили метод .tolist(). Это возвращает список списков, где каждый подсписок является записью в DataFrame.

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

Преобразование серии Pandas (столбца) в список

Для преобразования объекта Series в список в библиотеке Pandas, можно использовать метод .tolist() применённый к объекту Series или передать объект Series в функцию list(). Оба эти метода достигают одной и той же цели! Давайте посмотрим, как мы можем использовать любой из этих методов для преобразования столбца 'Age' в список:

# Convert a Pandas Series to a List
import pandas as pd

df = pd.DataFrame({
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra'],
    'Age': [33, 34, 43, 44],
    'Score': [90, 95, 93, 92]
})

list1 = df['Age'].values.tolist()
list2 = list(df['Age'])

print('list1 contains: ', list1)
print('list2 contains: ', list2)

# Returns:
# list1 contains:  [33, 34, 43, 44]
# list2 contains:  [33, 34, 43, 44]

Мы видим, что оба описанных выше метода возвращают один и тот же список значений. Первый метод, с использованием df['Age'].value.tolist(), может быть более целенаправленным и описательным для достижения желаемого результата.

В следующем разделе вы узнаете, как преобразовать DataFrame в список кортежей.

Преобразование кадра данных Pandas в список кортежей

Для преобразования DataFrame в список кортежей в Pandas можно использовать метод .to_records(), за которым следует метод .tolist(). Метод .to_records() преобразует записи DataFrame в контейнеры, похожие на кортежи. Затем, применяя метод .tolist(), объект преобразуется в список Python.

Давайте посмотрим, как выглядит этот процесс:

# Convert a Pandas DataFrame to a List of Tuples
import pandas as pd

df = pd.DataFrame({
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra'],
    'Age': [33, 34, 43, 44],
    'Score': [90, 95, 93, 92]
})

list_of_tuples = df.to_records().tolist()
print(list_of_tuples)

# Returns:
# [(0, 'Nik', 33, 90), (1, 'Kate', 34, 95), (2, 'Evan', 43, 93), (3, 'Kyra', 44, 92)]

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

Преобразование фрейма данных Pandas в список словарей

Для преобразования объекта Pandas DataFrame в список словарей можно использовать метод .to_dict(). Этот метод предлагает несколько различных способов, с помощью которых можно выполнить преобразование вашего Pandas DataFrame.

Преобразование DataFrame в список словарей можно выполнить, передав в метод значение 'records'. Это может быть полезно при переносе DataFrame в другие языки программирования, учитывая, насколько формат соответствует стилю JSON.

Давайте посмотрим, как мы можем этого добиться:

# Convert a Pandas DataFrame into a List of Dictionaries
import pandas as pd

df = pd.DataFrame({
    'Name': ['Nik', 'Kate', 'Evan', 'Kyra'],
    'Age': [33, 34, 43, 44],
    'Score': [90, 95, 93, 92]
})

list_of_dicts = df.to_dict('records')
print(list_of_dicts)

# Returns:
# [{'Name': 'Nik', 'Age': 33, 'Score': 90}, {'Name': 'Kate', 'Age': 34, 'Score': 95}, {'Name': 'Evan', 'Age': 43, 'Score': 93}, {'Name': 'Kyra', 'Age': 44, 'Score': 92}]

Заключение

В этом посте вы научились преобразовывать DataFrame из Pandas в список. Этот процесс может быть полезен при переносе набора данных между библиотеками (или даже языками). Сначала вы узнали, как преобразовать DataFrame в список, затем как преобразовать Series в список. Вы также узнали, как преобразовать DataFrame в список кортежей и список словарей.

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

Чтобы узнать больше о связанных темах, ознакомьтесь с обучающими материалами ниже:

Last updated