МІСТ — 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,callsignJSON (intercepts.json):
{
Excel: має заголовки, фільтри, може містити кілька аркушів (перехоплення + статистика)3.3 Читання форматів у Python
import pandas as pdPandas повертає DataFrame — уніфікований формат. Далі працюємо однаково незалежно від джерела.
3.4 Збереження форматів
# Маємо DataFrame dfindex=False — не зберігати номери рядків як колонку
orient='records' — JSON як список словників (як у прикладі вище)4. КОД З КОМЕНТАРЯМИ
Конвертер: Telegram JSON → CSV для Excel:
import json5. РОЗБІР ПО РЯДКАХ
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 pd9. РЕФЛЕКСІЯ
Я знаю коли використовувати CSV, JSON, Excel
Я вмію читати всі три формати через pandas
Я вмію конвертувати між форматами
Я розумію encoding='utf-8-sig' для Excel
Я можу об'єднати кілька файлів в Excel
10. ЩО ДАЛІ
Модуль 2.3: Pandas — таблиці на стероїдах (фільтрація, групування, агрегація)Головна думка: CSV для простих таблиць, JSON для структур, Excel для звітів. Pandas читає все, конвертує все.