English
Appearance
English
Appearance
16 sessions of 4 academic hours, 64 academic hours in total, on Mondays and Wednesdays, 10:00 - 13:00 (two 10-minute breaks).
Goal: a smooth move to Python as the main tool for the same daily work with data that you now do in SQL and SAS: reporting, modelling and ad-hoc analysis.
How we work: a lot of practice. Every topic is connected to what you already know from SQL and SAS. All examples and tasks use made-up data in the shape of the data you work with (a loan portfolio: clients, loans, a rating scale) - never real data.
The dates are planned and may change.
| Date | Topic | |
|---|---|---|
| 1 | Mon 26.10 | Introduction, syntax, data types and variables |
| 2 | Wed 28.10 | Conditional statements and loops |
| 3 | Mon 02.11 | Lists (basics), tuples and sets |
| 4 | Wed 04.11 | Functions |
| 5 | Mon 09.11 | Lists (advanced) |
| 6 | Wed 11.11 | Dictionaries |
| 7 | Mon 16.11 | Text processing |
| 8 | Wed 18.11 | Regular expressions |
| 9 | Mon 23.11 | Error handling and file handling |
| 10 | Wed 25.11 | Modules, packages, Git and GitHub |
| 11 | Mon 30.11 | OOP: first steps, classes and objects |
| 12 | Wed 02.12 | OOP in practice: nomenclatures |
| 13 | Mon 07.12 | Working with databases |
| 14 | Wed 09.12 | NumPy and introduction to pandas |
| 15 | Mon 14.12 | pandas: selection, aggregation, joins |
| 16 | Wed 16.12 | pandas: reports and the final project |
int, float, str, bool, None; converting between types; operators.Decimal for money values.if / elif / else, logical operators, match.for, range, while, break / continue.CASE WHEN and of the loops in a DATA step.list.UNION / INTERSECT / EXCEPT.def, parameters and default values, *args / **kwargs, return.lambda.sorted with key; min / max.zip, enumerate, map, filter.dict, looping over it, nested dictionaries, dict comprehensions.defaultdict, Counter.GROUP BY without pandas).str: split / join, strip, replace, formatting.datetime.re module: patterns, groups, search / findall / sub / split.PRXMATCH (SAS) and LIKE / REGEXP (SQL).try / except / else / finally, kinds of exceptions, raise, your own exceptions.pathlib, with open; text, CSV, JSON and Excel files.import, your own modules, the standard library (datetime, collections, statistics, os).pip and virtual environments; the structure of a project.commit, branch, merge, .gitignore. GitHub: clone, push, pull, pull requests.__init__, attributes, methods, self.__str__ / __repr__; class attributes; property; dataclasses.classmethod and staticmethod; inheritance and composition.sqlite3: connection, cursor, parameterised queries, transactions.ndarray, vector operations, broadcasting, aggregates, np.where.Series and DataFrame; reading CSV and Excel files.head, info, describe, the types of the columns.loc / iloc, boolean masks, query, new columns.groupby / agg (like GROUP BY and PROC MEANS).merge / concat (like JOIN and MERGE in a DATA step); missing values.pivot_table, melt, dates and time series, export to Excel with several sheets.