Создание DataFrame в Pandas

Как создавать таблицы из различных данных в Pandas: списков, словарей, и внешних файлов

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

Создание DataFrame из списков

Самый простой способ создать DataFrame — использовать список списков:

import pandas as pd

data = [[1, 'Anna'], [2, 'Bob'], [3, 'Charlie']]
df = pd.DataFrame(data, columns=['ID', 'Name'])
print(df)

#    ID     Name
# 0   1     Anna
# 1   2      Bob
# 2   3  Charlie

В этом примере каждый внутренний список становится строкой в DataFrame.

Создание DataFrame из словарей

Словари — еще один удобный способ создания DataFrame, где ключи словаря становятся именами столбцов, а значения — данными:

data = {
    'ID': [1, 2, 3],
    'Name': ['Anna', 'Bob', 'Charlie']
}
df = pd.DataFrame(data)
print(df)

#    ID     Name
# 0   1     Anna
# 1   2      Bob
# 2   3  Charlie

Такой метод особенно удобен, когда у вас есть структурированные данные, где каждому столбцу соответствует набор данных.

Создание DataFrame из внешних источников

Pandas предоставляет множество удобных функций для загрузки данных из различных внешних источников:

Из CSV файлов

Самый популярный формат для хранения табличных данных. Для чтения данных из CSV используйте read_csv():

df = pd.read_csv('path_to_file.csv')

Из Excel файлов

Если ваши данные хранятся в формате Excel, используйте read_excel():

df = pd.read_excel('path_to_file.xlsx')

Для этой функции потребуется дополнительная установка библиотеки openpyxl.

Из SQL баз данных

Для загрузки данных из SQL базы данных можно использовать read_sql():

from sqlalchemy import create_engine

# создание соединения с базой данных
engine = create_engine('sqlite:///path_to_db.db')

query = "SELECT * FROM table_name"
df = pd.read_sql(query, engine)

Из JSON файлов

JSON (JavaScript Object Notation) - это легкий формат обмена данными, который легко читается и анализируется. Для загрузки данных из JSON файлов используйте read_json():

df = pd.read_json('path_to_file.json')

Также возможно создание DataFrame напрямую из JSON строки:

json_string = '{"a": [1, 2, 3], "b": [4, 5, 6]}'
df = pd.read_json(json_string)

Из HTML

Pandas может извлекать таблицы из HTML-документов. Это особенно полезно при работе с веб-скрапингом.

url = "http://example.com/some_table_data.html"
df_list = pd.read_html(url)

Обратите внимание, что read_html() возвращает список DataFrames, так как на одной странице может быть несколько таблиц.

Из Parquet

Parquet — это популярный колоночный формат хранения для Hadoop. Он предоставляет высокоэффективную сжатую кодировку данных.

df = pd.read_parquet('path_to_file.parquet')

Из Google BigQuery

Если у вас есть данные в Google BigQuery, вы можете легко их извлечь в DataFrame:

from pandas.io import gbq

query = "SELECT * FROM `project.dataset.table`"
df = gbq.read_gbq(query, project_id='your_project_id')

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

Заключение

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

Содержание: