Как загрузить набор данных в python

Как загрузить набор данных в python

Одним из первых шагов в процессе анализа данных с использованием Python является загрузка набора данных. Для этого существует несколько инструментов и библиотек, которые обеспечивают удобство работы с различными форматами файлов, такими как CSV, Excel, JSON и другие. Наиболее популярными и мощными являются библиотеки pandas и numpy, которые позволяют эффективно загружать, обрабатывать и анализировать данные.

Для работы с набором данных в формате CSV рекомендуется использовать функцию read_csv() из библиотеки pandas. Этот метод автоматически интерпретирует данные, разделённые запятыми, и превращает их в таблицу, которую можно легко анализировать. Например, чтобы загрузить CSV-файл, достаточно выполнить следующий код:

import pandas as pd
data = pd.read_csv('path/to/your/file.csv')

Если данные находятся в формате Excel, можно воспользоваться read_excel(). Этот метод поддерживает как .xls, так и .xlsx форматы и позволяет работать с несколькими листами внутри одного файла. Загрузить данные из Excel можно так:

data = pd.read_excel('path/to/your/file.xlsx', sheet_name='Sheet1')

Если набор данных представлен в формате JSON, то в pandas есть метод read_json(), который загружает данные, представленное в этом формате, в виде DataFrame. Работать с JSON можно следующим образом:

data = pd.read_json('path/to/your/file.json')

Важно помнить, что при загрузке данных в Python следует учитывать не только формат файла, но и его структуру. Например, CSV-файлы могут содержать не только числовые данные, но и текст, который требует дополнительной обработки (например, удаления пустых строк или значений). Поэтому всегда стоит проверять загруженные данные и при необходимости выполнять предобработку, чтобы избежать ошибок в дальнейшем анализе.

Использование pandas для загрузки CSV файлов

Использование pandas для загрузки CSV файлов

Для загрузки CSV-файлов используется функция pandas.read_csv(). Укажите путь к файлу и при необходимости настройте параметры: кодировку, разделитель, пропущенные значения и типы данных.

Пример базовой загрузки:

import pandas as pd
df = pd.read_csv('data.csv')

Если файл содержит не UTF-8-кодировку, используйте параметр encoding:

df = pd.read_csv('data.csv', encoding='cp1251')

Для нестандартного разделителя (например, точка с запятой):

df = pd.read_csv('data.csv', sep=';')

Пропущенные значения можно указать вручную через na_values:

df = pd.read_csv('data.csv', na_values=['NA', '-', ''])

Чтобы уменьшить использование памяти, задайте типы столбцов через dtypes:

df = pd.read_csv('data.csv', dtype={'id': 'int32', 'name': 'string'})

Для загрузки только части файла – используйте usecols и nrows:

df = pd.read_csv('data.csv', usecols=['id', 'value'], nrows=1000)

Чтобы пропустить строки заголовка или метаинформацию, задайте skiprows:

df = pd.read_csv('data.csv', skiprows=2)

При больших объемах данных используйте параметр chunksize для поэтапной обработки:

for chunk in pd.read_csv('data.csv', chunksize=50000):
process(chunk)

Перед анализом убедитесь в корректности загрузки:

print(df.info())
print(df.head())

Загрузка данных из Excel с помощью библиотеки openpyxl

Загрузка данных из Excel с помощью библиотеки openpyxl

Для работы с файлами Excel в формате .xlsx используется библиотека openpyxl. Она обеспечивает доступ к структуре книги, листам, ячейкам и позволяет считывать данные без запуска Excel.

Установка:

pip install openpyxl

Пример загрузки данных с первого листа:

from openpyxl import load_workbook
wb = load_workbook('данные.xlsx', data_only=True)
ws = wb.active
данные = []
for row in ws.iter_rows(min_row=2, values_only=True):
данные.append(row)

Параметр data_only=True загружает значения ячеек, а не формулы. Параметры min_row, max_row, min_col, max_col позволяют ограничить диапазон загрузки.

Если нужно обратиться к конкретному листу:

ws = wb['Лист1']

Для получения заголовков и привязки данных к ним:

заголовки = [cell.value for cell in ws[1]]
данные = [dict(zip(заголовки, row)) for row in ws.iter_rows(min_row=2, values_only=True)]

Поддерживаются типы данных Excel: строки, числа, даты. Для корректной работы с датами проверьте формат ячеек в Excel или используйте cell.is_date.

Если файл повреждён или не соответствует формату, будет вызван InvalidFileException. Оберните загрузку в try-except для обработки ошибок.

Как подключить базы данных с помощью SQLAlchemy

Как подключить базы данных с помощью SQLAlchemy

Установите библиотеку SQLAlchemy командой pip install sqlalchemy. Для работы с конкретной СУБД потребуется соответствующий драйвер: psycopg2 для PostgreSQL, pymysql для MySQL, cx_Oracle для Oracle и т.д.

Создайте строку подключения в формате: dialect+driver://username:password@host:port/database. Примеры:

PostgreSQL: postgresql+psycopg2://user:pass@localhost:5432/dbname

SQLite (файл): sqlite:///path/to/database.db

Инициализируйте подключение:

from sqlalchemy import create_engine
engine = create_engine("postgresql+psycopg2://user:pass@localhost:5432/dbname")

Проверьте соединение вызовом engine.connect(). Чтобы загрузить данные в DataFrame, используйте:

import pandas as pd
df = pd.read_sql("SELECT * FROM таблица", engine)

Если используется ORM, определите классы моделей с помощью declarative_base() и выполните Base.metadata.create_all(engine) для создания таблиц.

Загрузка данных через API с использованием requests

Загрузка данных через API с использованием requests

Библиотека requests позволяет выполнять HTTP-запросы к API и получать данные в формате JSON, CSV или другом. Для начала убедитесь, что библиотека установлена:

pip install requests

Пример запроса к публичному API:

import requests
url = "https://api.exchangerate.host/latest"
response = requests.get(url)
data = response.json()

Если API требует параметры:

params = {
"base": "USD",
"symbols": "EUR,RUB"
}
response = requests.get(url, params=params)

Для работы с авторизацией используйте заголовки:

headers = {
"Authorization": "Bearer YOUR_API_TOKEN"
}
response = requests.get("https://api.example.com/data", headers=headers)

Рекомендации:

  • Проверяйте статус ответа: response.status_code == 200.
  • Обрабатывайте ошибки через try-except, используя response.raise_for_status().
  • Для больших объёмов данных используйте параметр stream=True.
  • Документация API всегда указывает формат ответа и структуру параметров – изучайте перед интеграцией.
  • Кэшируйте ответы, если API ограничивает количество запросов.

Полученные данные можно сразу передавать в pandas для анализа:

import pandas as pd
df = pd.DataFrame(data["rates"].items(), columns=["Currency", "Rate"])

Чтение данных из JSON файлов в Python

Чтение данных из JSON файлов в Python

Для загрузки данных из JSON-файлов используйте модуль json, входящий в стандартную библиотеку. Он обеспечивает методы load() и loads() для разбора содержимого. Первый применяется к файловым объектам, второй – к строкам.

Чтобы прочитать файл, откройте его с помощью open() в текстовом режиме с указанием кодировки, например utf-8. Затем передайте файловый объект в json.load():

import json
with open('data.json', 'r', encoding='utf-8') as file:
data = json.load(file)

Результат будет представлен в виде словаря или списка, в зависимости от структуры JSON. Доступ к данным осуществляется через ключи и индексы: data['ключ'] или data[0].

Проверяйте структуру JSON заранее с помощью print(type(data)) и print(data.keys()), если загружен словарь. Это упрощает навигацию и предотвращает ошибки доступа по неверным ключам.

Если JSON содержит вложенные объекты, для безопасного доступа используйте dict.get() вместо прямого обращения по ключу. Это позволяет избежать KeyError при отсутствии элемента:

user_name = data.get('user', {}).get('name')

При работе с большими JSON-файлами используйте строчное чтение и парсинг по частям с помощью библиотеки ijson, особенно если объем превышает оперативную память. Это актуально для логов, выгрузок API и агрегированных данных.

При загрузке из веб-источников преобразуйте байтовую строку в объект через json.loads(response.content.decode('utf-8')), если используется requests.

Загрузка данных из облачных хранилищ (Google Drive, AWS S3)

Загрузка данных из облачных хранилищ (Google Drive, AWS S3)

Для загрузки файлов с Google Drive в Python удобно использовать библиотеку gdown, если файл доступен по общедоступной ссылке. Установите её через pip install gdown. Затем используйте команду:

gdown 'https://drive.google.com/uc?id=ID_ФАЙЛА'

Где ID_ФАЙЛА – это идентификатор из URL. Если файл защищён, потребуется аутентификация через OAuth и использование pydrive или googleapiclient. Для этого нужно создать проект в Google Cloud Console, включить Drive API, скачать файл client_secret.json и пройти процедуру авторизации:


from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
gauth = GoogleAuth()
gauth.LocalWebserverAuth()
drive = GoogleDrive(gauth)
file = drive.CreateFile({'id': 'ID_ФАЙЛА'})
file.GetContentFile('имя_файла')

Для Amazon S3 используйте boto3 – официальную библиотеку AWS. Установите её командой pip install boto3. Для доступа потребуются ключи доступа (Access Key ID и Secret Access Key), которые можно задать через переменные окружения или файл конфигурации. Пример загрузки файла:


import boto3
s3 = boto3.client('s3')
s3.download_file('название_бакета', 'путь/к/файлу.csv', 'локальный_файл.csv')

Если используется приватный бакет, необходимо убедиться, что у IAM-пользователя есть права s3:GetObject. Для ускорения передачи данных с больших объектов можно использовать TransferConfig с параллельной загрузкой.

Вопрос-ответ:

Ссылка на основную публикацию