Към съдържанието

Програма ​

16 занятия по 4 учебни часа, общо 64 учебни часа, в понеделник и сряда, 10:00 - 13:00 (две почивки по 10 минути).

Цел: плавно преминаване към Python като основен инструмент за същата ежедневна работа с данни, която сега вършите в SQL и SAS: отчети, моделиране и ad-hoc анализи.

Как работим: много практика. Всяка тема е свързана с това, което вече знаете от SQL и SAS. Всички примери и задачи използват измислени данни с формата на данните, с които работите (кредитен портфейл: клиенти, кредити, рейтингова скала) - никога реални данни.

Занятия ​

Датите са планирани и може да се променят.

ДатаТема
1пон 26.10Въведение, синтаксис, типове данни и променливи
2ср 28.10Условни конструкции и цикли
3пон 02.11Lists (основи), tuples и sets
4ср 04.11Функции
5пон 09.11Lists (за напреднали)
6ср 11.11Dictionaries
7пон 16.11Обработка на текст
8ср 18.11Регулярни изрази (regular expressions)
9пон 23.11Обработка на грешки и работа с файлове
10ср 25.11Модули, пакети, Git и GitHub
11пон 30.11ООП: първи стъпки, класове и обекти
12ср 02.12ООП на практика: номенклатури
13пон 07.12Работа с бази данни
14ср 09.12NumPy и въведение в pandas
15пон 14.12pandas: селекция, агрегиране, съединяване (joins)
16ср 16.12pandas: отчети и финалният проект

Подробно по занятия ​

1. Въведение, синтаксис, типове данни и променливи ​

  • Python до SQL и SAS: за какво се използва всеки от тях.
  • Работа с VS Code и Jupyter notebooks.
  • int, float, str, bool, None; преобразуване между типове; оператори.
  • f-strings; Decimal за парични стойности.

2. Условни конструкции и цикли ​

  • if / elif / else, логически оператори, match.
  • for, range, while, break / continue.
  • Версията на Python за CASE WHEN и за циклите в DATA step.
  • Задачи: разпределяне на клиенти по рискови класове.

3. Lists (основи), tuples и sets ​

  • Създаване на lists, индексиране, slicing, методите на list.
  • Tuples като записи, които не могат да се променят.
  • Sets за уникални стойности и операции със sets като UNION / INTERSECT / EXCEPT.

4. Функции ​

  • def, параметри и стойности по подразбиране, *args / **kwargs, return.
  • Scope на променливите, docstrings, type hints, lambda.
  • Функции вместо SAS макроси.

5. Lists (за напреднали) ​

  • List comprehensions; sorted с key; min / max.
  • zip, enumerate, map, filter.
  • Вложени lists: таблица като list от редове; копия и референции.

6. Dictionaries ​

  • Работа с dict, обхождане с цикъл, вложени dictionaries, dict comprehensions.
  • defaultdict, Counter.
  • Групиране и агрегиране на ръка (GROUP BY без pandas).
  • Таблици за търсене (lookup tables) и номенклатури.

7. Обработка на текст ​

  • Методите на str: split / join, strip, replace, форматиране.
  • Почистване на текстови данни: имена, кодове, идентификатори.
  • Дати от текст с datetime.

8. Регулярни изрази (regular expressions) ​

  • Модулът re: patterns, groups, search / findall / sub / split.
  • Валидиране на IBAN, ЕИК, e-mail адреси и дати; извличане на стойности от свободен текст.
  • Версията на Python за PRXMATCH (SAS) и LIKE / REGEXP (SQL).

9. Обработка на грешки и работа с файлове ​

  • try / except / else / finally, видове exceptions, raise, ваши собствени exceptions.
  • pathlib, with open; текстови, CSV, JSON и Excel файлове.
  • Обработка на лоши записи при зареждане на данни.

10. Модули, пакети, Git и GitHub ​

  • import, ваши собствени модули, стандартната библиотека (datetime, collections, statistics, os).
  • pip и виртуални среди; структурата на един проект.
  • Git: commit, branch, merge, .gitignore. GitHub: clone, push, pull, pull requests.

11. ООП: първи стъпки, класове и обекти ​

  • Клас и обект, __init__, атрибути, методи, self.
  • __str__ / __repr__; атрибути на класа; property; dataclasses.

12. ООП на практика: номенклатури ​

  • Номенклатура като клас: данни, метаданни, правила за валидиране и методи за обработка.
  • classmethod и staticmethod; наследяване и композиция.
  • Прилагане на една номенклатура по един и същи начин към различни набори от данни.

13. Работа с бази данни ​

  • DB-API и sqlite3: връзка (connection), cursor, параметризирани заявки, транзакции.
  • SQLAlchemy engine; резултатът от заявка направо в DataFrame.
  • Драйвери за Oracle / MS SQL / PostgreSQL (преглед).

14. NumPy и въведение в pandas ​

  • ndarray, векторни операции, broadcasting, агрегати, np.where.
  • Series и DataFrame; четене на CSV и Excel файлове.
  • head, info, describe, типовете на колоните.

15. pandas: селекция, агрегиране, съединяване (joins) ​

  • loc / iloc, булеви маски, query, нови колони.
  • groupby / agg (като GROUP BY и PROC MEANS).
  • merge / concat (като JOIN и MERGE в DATA step); липсващи стойности.

16. pandas: отчети и финален проект ​

  • pivot_table, melt, дати и времеви редове, експорт в Excel с няколко листа.
  • Финален проект: зареждане на данни от файл и от база данни, номенклатури като класове, почистване, агрегиране и готов отчет.

Създаден за