Эффективные методы преобразования списка словарей в DataFrame

Преобразование списка словарей в DataFrame pandas — распространенная задача при анализе и манипулировании данными. В этой статье блога мы рассмотрим различные методы эффективного выполнения этой задачи с примерами кода для каждого метода. Независимо от того, являетесь ли вы новичком или опытным специалистом по данным, эта статья предоставит вам подробное руководство о том, как преобразовать список словарей в DataFrame.

Метод 1: использование конструктора DataFrame pandas

Самый простой и понятный способ преобразовать список словарей в DataFrame — использовать конструктор DataFrame pandas. Вот пример:

import pandas as pd
data = [
    {'Name': 'John', 'Age': 28, 'Country': 'USA'},
    {'Name': 'Alice', 'Age': 32, 'Country': 'Canada'},
    {'Name': 'Bob', 'Age': 45, 'Country': 'UK'}
]
df = pd.DataFrame(data)
print(df)

Выход:

   Name  Age Country
0  John   28     USA
1 Alice   32  Canada
2   Bob   45      UK

Метод 2: использование функции pandas json_normalize()

Если ваш список словарей содержит вложенные структуры, вы можете использовать функцию json_normalize()из pandas, чтобы сгладить данные и преобразовать их в DataFrame. Вот пример:

import pandas as pd
data = [
    {'Name': 'John', 'Age': 28, 'Country': {'Name': 'USA', 'Code': 'US'}},
    {'Name': 'Alice', 'Age': 32, 'Country': {'Name': 'Canada', 'Code': 'CA'}},
    {'Name': 'Bob', 'Age': 45, 'Country': {'Name': 'UK', 'Code': 'GB'}}
]
df = pd.json_normalize(data)
print(df)

Выход:

   Name  Age Country.Name Country.Code
0  John   28          USA           US
1 Alice   32       Canada           CA
2   Bob   45           UK           GB

Метод 3: использование функции pandas from_records()

Еще один эффективный метод преобразования списка словарей в DataFrame — использование функции from_records()в pandas. Этот метод позволяет явно указать имена столбцов. Вот пример:

import pandas as pd
data = [
    {'Name': 'John', 'Age': 28, 'Country': 'USA'},
    {'Name': 'Alice', 'Age': 32, 'Country': 'Canada'},
    {'Name': 'Bob', 'Age': 45, 'Country': 'UK'}
]
df = pd.DataFrame.from_records(data, columns=['Name', 'Age', 'Country'])
print(df)

Выход:

   Name  Age Country
0  John   28     USA
1 Alice   32  Canada
2   Bob   45      UK

Метод 4. Использование функции pandas concat()

Если у вас есть несколько списков словарей, которые вы хотите объединить в один DataFrame, вы можете использовать функцию concat()в pandas. Вот пример:

import pandas as pd
data1 = [
    {'Name': 'John', 'Age': 28, 'Country': 'USA'},
    {'Name': 'Alice', 'Age': 32, 'Country': 'Canada'}
]
data2 = [
    {'Name': 'Bob', 'Age': 45, 'Country': 'UK'},
    {'Name': 'Eva', 'Age': 29, 'Country': 'Germany'}
]
df = pd.concat([pd.DataFrame(data1), pd.DataFrame(data2)])
print(df)

Выход:

   Name  Age  Country
0  John   28      USA
1 Alice   32   Canada
0   Bob   45       UK
1   Eva   29  Germany

В этой статье мы рассмотрели несколько эффективных методов преобразования списка словарей в DataFrame pandas. Мы рассмотрели методы, использующие конструктор DataFrame, функции json_normalize(), from_records() и concat(). Эти методы обеспечивают гибкость и простоту использования при работе с различными структурами данных. Используя эти методы, вы сможете эффективно преобразовывать свои данные и раскрыть возможности pandas для дальнейшего анализа и манипулирования.