This textbook presents methods and techniques for time series analysis and forecasting and shows how to use Python to implement them and solve data science problems. It covers not only common statistical approaches and time series models, including ARMA, SARIMA, VAR, GARCH and state space and Markov switching models for (non)stationary, multivariate and financial time series, but also modern machine learning procedures and challenges for time series forecasting. Providing an organic combination of the principles of time series analysis and Python programming, it enables the reader to study methods and techniques and practice writing and running Python code at the same time. Its data-driven approach to analyzing and modeling time series data helps new learners to visualize and interpret both the raw data and its computed results. Primarily intended for students of statistics, economics and data science with an undergraduate knowledge of probability and statistics, the book will equally appeal to industry professionals in the fields of artificial intelligence and data science, and anyone interested in using Python to solve time series problems.