To get the most out of this book
You should be familiar with Python, particularly Python 3 and up. You should also know how to write functions and basic scripts in Python, understand standard programming concepts such as variables, data types, and control flow (if/else, for/while loops), and be able to use Python as a functional programming language. Some basic knowledge of object-oriented programming may be helpful but is not necessary. If your Python prowess isn't yet at this level, the Python documentation includes a helpful tutorial for quickly getting up to speed: https://docs.python.org/3/tutorial/index.html.
The accompanying code for this book can be found on GitHub at https://github.com/stefmolin/Hands-On-Data-Analysis-with-Pandas-2nd-edition. To get the most out of this book, you should follow along in the Jupyter Notebooks as you read through each chapter. We will cover setting up your environment and obtaining these files in Chapter 1, Introduction to Data Analysis. Note that there is also a Python 101 notebook that provides a crash course/refresher, if needed: https://github.com/stefmolin/Hands-On-Data-Analysis-with-Pandas-2nd-edition/blob/master/ch_01/python_101.ipynb.
Lastly, be sure to do the exercises at the end of each chapter. Some of them may be quite challenging, but they will make you much stronger with the material. Solutions for each chapter's exercises can be found at https://github.com/stefmolin/Hands-On-Data-Analysis-with-Pandas-2nd-edition/tree/master/solutions in their respective folders.