Модуль 2.2 Робота з даними

МІСТ — CSV vs JSON vs EXCEL

Курс: Python для аналітиків з нуля

1. ЩО НАВЧИМОСЯ РОБИТИ

Обирати правильний формат для задачі. Конвертувати між форматами.

У Excel ти працював з таблицями. JSON бачив у модулі 2.1. CSV — це міст між ними. Розберемо коли що використовувати та як конвертувати.

2. ТЕРМ інологія

CSV (Comma-Separated Values)

Текстовий файл з даними, розділеними комами. Відкривається в Excel, легко парситься.

Delimiter (роздільник)

Символ між значеннями. Кома у CSV, таб у TSV, крапка з комою у європейських таблицях.

pandas.read_csv()
Завантажити CSV як таблицю (DataFrame)
pandas.read_excel()
Завантажити Excel (.xlsx, .xls)
pandas.read_json()

Завантажити JSON як таблицю

3. ТЕОРІЯ

3.1 Порівняння форматів

CSV — найпростіший

  • Плюси: легкий, відкривається всюди, Git показує зміни
  • Мінуси: тільки одна таблиця, немає типів даних, проблеми з комами в тексті
  • Коли: експорт для колег, лог подій, координати

JSON — структурований

Плюси: вкладені дані, списки, типи (число/текст/bool)
  • Мінуси: складніший для людини, важкий для Excel
  • Коли: API, експорт месенджерів, конфігурація

Excel — найпотужніший

  • Плюси: кілька аркушів, формули, форматування
  • Мінуси: важкий файл, потрібні бібліотеки
  • Коли: звіти для командування, складні таблиці

3.2 Приклад даних у трьох форматах

Дані: журнал перехоплень

CSV (intercepts.csv):

time,freq,signal,callsign

JSON (intercepts.json):

{
Excel: має заголовки, фільтри, може містити кілька аркушів (перехоплення + статистика)

3.3 Читання форматів у Python

import pandas as pd

Pandas повертає DataFrame — уніфікований формат. Далі працюємо однаково незалежно від джерела.

3.4 Збереження форматів

# Маємо DataFrame df

index=False — не зберігати номери рядків як колонку

orient='records' — JSON як список словників (як у прикладі вище)

4. КОД З КОМЕНТАРЯМИ

Конвертер: Telegram JSON → CSV для Excel:

import json

5. РОЗБІР ПО РЯДКАХ

pd.DataFrame(records) — створити таблицю зі списку словників. Ключі стають колонками.

encoding='utf-8-sig' — для Excel на Windows. Додає BOM (Byte Order Mark), щоб Excel правильно розпізнав кирилицю.

pd.ExcelWriter() — контекстний менеджер для запису Excel з налаштуваннями.
[:100] — зріз рядка, перші 100 символів. Щоб не роздувати таблицю довгим текстом.

6. ЗАВДАННЯ 1: ОБРАТИ ФОРМАТ

Ситуація 1: щоденний лог активності (час, подія, статус). Додаєш 50-100 рядків щодня, колеги мають читати.

Відповідь: CSV. Легко додавати рядки, відкривається в Excel, можна трекати зміни в Git.

Ситуація 2: експорт вкладених даних з API (користувач → список постів → коментарі до кожного).

Відповідь: JSON. CSV не може вкладені структури. Потрібно або кілька CSV-файлів, або JSON.

Ситуація 3: місячний звіт з трьома таблицями (перехоплення + статистика + карта частот) для командування.

Відповідь: Excel. Кілька аркушів, форматування, графіки. Можна вставити картинку карти.

7. ЗАВДАННЯ 2: ПРОМПТ ДЛЯ AI

Задача: конвертувати CSV з координатами у JSON для folium карти

Структура CSV:

id,name,lat,lon,status

Потрібний JSON для карти:

{

Приклад промпту:

Конвертуй CSV у JSON. Вхідний файл posts.csv має колонки: id, name, lat, lon, status. Вихідний JSON має структуру: масив markers, кожен елемент містить name, coords (список [lat,lon]), status. Використай pandas для читання CSV. Код має зберегти у posts.json з кирилицею.

8. ЗАВДАННЯ 3 (ОПЦІОНАЛЬНО)

Об'єднати 10 CSV-файлів у один Excel з датами як назвами аркушів

Файли: intercepts_2024-01-01.csv, intercepts_2024-01-02.csv, ... (10 днів)

Результат: intercepts_week.xlsx з 10 аркушами

Підказка:

import pandas as pd

9. РЕФЛЕКСІЯ

Я знаю коли використовувати CSV, JSON, Excel

Я вмію читати всі три формати через pandas

Я вмію конвертувати між форматами

Я розумію encoding='utf-8-sig' для Excel

Я можу об'єднати кілька файлів в Excel

10. ЩО ДАЛІ

Модуль 2.3: Pandas — таблиці на стероїдах (фільтрація, групування, агрегація)

Головна думка: CSV для простих таблиць, JSON для структур, Excel для звітів. Pandas читає все, конвертує все.

Рефлексія

Прогрес модуля 0%