Использование библиотек и работа с данными

Загрузка и сохранение данных

Содержание курса

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

Большинство проектов по анализу данных включает загрузку данных из внешних источников (файлов). Рассмотрим чтение самых распространённых форматов:

  • Текстовые файлы (TXT): Используем стандартные средства Python. Например:

    with open("example.txt", "r", encoding="utf-8") as f:
        text = f.read()
    print(text[:100])
    

    Это откроет файл example.txt на чтение и сохранив его содержимое в строку text (для демонстрации мы вывели первые 100 символов). Блок with автоматически закроет файл после чтения.

  • CSV (Comma-Separated Values): Очень популярный формат табличных данных. Библиотека pandas делает работу с ним особенно простой:

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

    Функция pd.read_csv читает CSV-файл и возвращает DataFrame. Метод head() покажет первые несколько строк, чтобы убедиться, что данные загрузились правильно (по умолчанию 5 строк). Если у CSV-разделитель не запятая или нет заголовка, есть параметры вроде sep=";", header=None.

  • Excel (XLSX): Можно использовать pd.read_excel("table.xlsx"), но нужна установка дополнительных пакетов (например, openpyxl). Похожим образом pd.to_excel сохраняет DataFrame в Excel.

  • JSON: pd.read_json("data.json") – прочитает JSON, если он в табличном формате, и сделает DataFrame. Иначе можно использовать модуль json стандартной библиотеки.

Пример (CSV): Предположим, у нас есть файл students.csv с содержимым:

name,score
Ann,87
Ben,90
Joe,78

Читаем его:

df = pd.read_csv("students.csv")
print("Всего строк:", len(df))
display(df)

Вывод будет:

Всего строк: 3

и таблица:

name score
0 Ann 87
1 Ben 90
2 Joe 78

Теперь DataFrame df содержит наши данные, и мы можем их анализировать (например, df["score"].mean()).

Чтение данных из интернета: В ноутбуке можно загружать данные по URL с помощью функций или системных команд:

  • Библиотека requests позволяет скачивать файлы, либо можно использовать !wget/!curl как shell-команду. Например:

    !wget -O data.csv https://raw.githubusercontent.com/пример/data.csv

    скачает файл по ссылке в текущую папку под именем data.csv.

  • В Google Colab и JupyterHub могут быть свои способы загрузки файлов (например, через интерфейс).

После скачивания файла таким образом, вы можете читать его обычными методами (например, pd.read_csv("data.csv")).

FileNotFoundError в Jupyter: где находится файл

Относительный путь считается от рабочей папки ядра, а не автоматически от Downloads. Выполните в ячейке:

from pathlib import Path

print(Path.cwd())
print([p.name for p in Path.cwd().iterdir() if p.is_file()])

Если файла нет в этой папке, загрузите его через файловый интерфейс Jupyter или укажите настоящий полный путь. На Windows используйте Path(r"C:\Users\ваше_имя\Downloads\students.csv") либо прямые слеши. Имя пользователя здесь нужно заменить, а файл должен существовать. На удалённом Jupyter файл на вашем ноутбуке не виден, пока вы не загрузите его на сервер.

Разделитель, кодировка и десятичная запятая

Когда вся строка попала в один столбец, проверьте разделитель CSV. Для таблицы с ; и десятичной запятой явно задайте параметры:

df = pd.read_csv("sales.csv", sep=";", decimal=",", encoding="utf-8")
print(df.columns.tolist())
print(df.dtypes)
display(df.head())

Не выбирайте другую кодировку наугад: выясните, как выгрузили файл. UnicodeDecodeError — вопрос декодирования байтов, а один столбец вместо нескольких — обычно вопрос разделителя. Для XLSX используйте read_excel, а не read_csv.

Начать заново?

Помощник начнёт новый диалог по этой задаче. Текущая переписка останется в истории до конца срока хранения.

О переписке

Можно приложить до трёх фото PNG, JPEG или WebP по 5 МБ.

Переписка и фото хранятся 90 дней после последнего принятого сообщения. Преподаватель получит доступ к диалогу, когда вы попросите его помочь.

Проверка решения остаётся отдельным действием.