• $360

Pandas

Read, manipulate, analyze, and plot data with ease — all within Python!

This course contains 12 hours of video lessons, covering all of the aspects of Pandas you need to get up and running. Numerous exercises help to reinforce the ideas with real-world data.

Get this course, and many others, as part of my LernerPython membership, at https://LernerPython.com.

FAQs

What will this course teach me?

This is an introduction to the Pandas library, and how to use it for data analytics (and a lot more). If you want to use Pandas to load, sort, summarize, store, and visualize data, then this course will help you out.

Pandas is a massive package, with a huge number of methods and capabilities. So no course could possibly teach you everything that there is to know. That said, this course will help you, via examples and numerous exercises, to feel comfortable using Pandas in a variety of tasks and ways.

What previous knowledge do I need?

The secret is that you don't need to know that much Python in order to use Pandas effectively. You aren't going to be writing functions or loops, and you're not going to be using "if" statements, either.

That said, knowing at least some Python will certainly be helpful.

What you will also want to know, almost certainly, is some NumPy. You don't have to be NumPy expert, but it's important that you feel comfortable working with vectorized data structures.  This course assumes that you have such experience; if you don't, then you should check out my "NumPy" course before (or along with) this one.

What versions of Python and Pandas will I need?

The course uses Python 3.7, and Pandas version 0.25.3. That said, I only use the most common and stable elements of Pandas, so it should be a relevant course for many years to come.

Does the course include any hands-on labs?

Yes, I'm a firm believer in hands-on exercises to practice and truly internalize the material. The course includes many, *many* exercises.

Do you offer any discounts?

Yes, absolutely:

  • For students
  • For pensioners, retirees, and senior citizens
  • For people living permanently outside the world's 30 richest countries
If you fit into one of these categories, then please send me e-mail (reuven@lerner.co.il); I'll repsond with a coupon that gives you the appropriate discount.

What if I don't get any value from the course?

Then I'll refund your money. Just e-mail me to let me know that you're unsatisfied.

What if I have other questions, which weren't answered here?

Then e-mail me, and I'll get back to you ASAP!

Testimonials

Reuven Lerner’s Pandas video course was exactly what I needed to establish a solid understanding of the fundamentals of pandas.  The course scope is holistic and invests in establishing comfort with pandas’ core functionality. The content is broken up into manageable components, with the typical length of an individual video lesson being around 4 to 5 minutes.

Reuven’s teaching approach is excellent in terms of pacing and cadence. I never felt that too much was being covered at one time or that a topic was covered too fast before moving onto to the next item. New material is introduced in a measured fashion that is patient but not slow. Both the lesson examples and the end-of-section exercises help to solidify current material and reinforce prior content. 

Within a given lesson, Reuven focuses on explaining - versus rushing through - the code examples and the rationale or preferences behind various choices. Given that some of the difficulty in learning pandas is that there are many ways to do a single action (e.g., indexing), Reuven’s insight into his preferred approaches are incredibly valuable.

Jason Mark Wattier

I just finished your Pandas course. Although I had been using Pandas for a bit, I learned a ton and feel much more comfortable using it now!

Christof Osman

Contents

Section 1: Introduction

Pandas, part 1 -- introduction.ipynb
1. Introduction
2. What is pandas?
3. Installing pandas
4. Loading pandas into Jupyter

Section 2: Series

Pandas, part 2 -- series.ipynb
5. Creating a Series
6. Creating a Series with NumPy
7. Setting and retrieving with indexes
Preview
8. Retrieving with loc and iloc
Preview
9. Setting the index
10. Non-unique indexes
10a. Fancy indexing
11. Basic methods
12. Operations by index
13. Broadcasting operators
14. Boolean Indexing
15. Exercise #1
Exercise #1 text
16. Exercise #1 solutions

Section 3: dtypes and NaN

Pandas, part 3 -- dtypes and NaN.ipynb
17. dtypes
18. Assigning to dtypes
Preview
19. Using astype
20. NaN
20a. Skipping NaN
21. dropna and fillna
22. Fill value
23. Exercise #2
Exercise #2 text
24. Exercise #2 solutions

Section 4: Advanced series functionality

Pandas, part 4 -- advanced series.ipynb
25. Size and count
26. Median and quantiles
27. Describe
28. Describe with non-numeric data
29. Head and Tail
30. Value Counts
Preview
31. Duplicated
32. Replace
33. Sorting
34. Apply
35. Exercise #3
Exercise #3 text
36. Exercise #3 solutions

Section 5: Strings

Pandas, part 5 -- Strings.ipynb
37. Strings in Pandas vs NumPy
38. String methods and the "str" object
Preview
39. Finding numbers
40. startswith and endswith
41. [] and strings
42. str.contains
43. find and index
44. Modifying data
45. Splitting and reusing str
46. Exercise #4
Exercise #4 text
47. Exercise #4 solutions

Section 6: Plotting series

Pandas, part 6 -- plotting.ipynb
48. Simple plots with matplotlib
49. More sophisticated plotting with Matplotlib
50. Line plots via pandas
51. Bar plots with pandas
Preview
52. Histograms
53. Pie plots
54. Box plots
55. Exercise #5
Exercise #5 text
56. Exercise #5 solutions

Section 7: Data frames

Pandas, part 7 -- data frames.ipynb
57. Data frames introduction
58. Index and columns (simple retrievals)
58a. Dot syntax for column retrieval
59. Setting the index and columns
60. Retrieving an individual value
61. Creating data frames from NumPy arrays
62. Creating data frames from a list of dicts
63. Creating data frames from a dict of lists, arrays, or series
64. Methods on columns
65. Methods on an entire data frame
66. Retrieving multiple columns
67. Retrieving multiple rows
68. Updating values in a data frame
68a. Using "describe" on data frames
68b. Updating a column
68c. Adding columns
68d. Updating values in rows and adding rows
68e. Dropping one or more rows
68f. Dropping one or more columns
69. Exercise #6
Exercise #6 text
70. Exercise #6 solutions

Section 8: Boolean indexes and data frames

Pandas, part 8 -- boolean indexes and data frames.ipynb
71. Boolean indexes on a column
72. Applying boolean indexes to other columns
73. Complex queries across columns
74. Applying a boolean index to an entire data frame
75. Assigning to data frames (recap)
76. Assigning to multiple rows and columns with loc
77. Assigning to a column based on a boolean index
78. Chained assignment: what it is, and how to avoid it
79. Data frame assignment example
80. Assigning a scalar value to a data frame, based on a condition
81. Assigning a vector value to a data frame, based on a condition
82. Using df.replace to replace values across a data frame
82a. Using isna, dropna, and fillna with data frames
83. Using mask and where
84. Using clip
85. Exercise #7
Exercise #7 text
86. Exercise solutions 7

Section 9: Pandas and I/O — reading and writing files

Pandas, part 9 -- input and output.ipynb
87. Pandas, IO and saving to the clipboard
88. Saving to CSV
89. Changing the CSV separator
90. NaN representation
91. Choosing output columns
92. Writing row and column names
93. Saving with compression
94. Reading CSV files
95. Choosing and ignoring header rows
96. Naming columns
97. Choosing columns
98. Choosing and naming
99. Reading NaN values
100. dtype hints when reading CSV
101. Reading in from the network
102. Exercise #8
Exercise #8 text
103. Exercise #8 solutions
104. Excel files
105. JSON files
106. SQL databases
exercise-9.txt

Section 10: Data analysis with Pandas

Pandas, part 10 -- analysis of real-world data.ipynb
Flight delays data
Taxi data
107. Analysis of taxi data (part 1)
Preview
108. Taxi data (part 2)
109. Taxi data (part 3)
110. Taxi data (part 4)
111. Taxi data (part 5)
112. Taxi data (part 6)
113. Exercise #9
114. Exercise #9 solutions

Section 11: Memory management and categories

Pandas, part 11 -- Memory management and categories.ipynb
115. Data frames and memory usage
116. Memory usage in series and data frames
117. Categories
118. Setting dtypes upon load
119. Predefining categories
120. Avoiding low-memory warnings
airlines.dat
121. Exercise #10
Exercise #10 text
122. Exercise #10 solutions

Section 12: Indexes and multi-indexes

Pandas, part 12 -- indexes.ipynb
123. Set and reset index
124. Multi-indexes on series
125. Multi-indexes on data frames
126. Stack and unstack
127. Swap level
128. Exercise #11
Exercise #11 text
129. Exercise #11 solutions
college.csv

Section 13: Sorting, merging, and grouping

Pandas, part 13 -- sorting, joining, merging, and grouping.ipynb
reuven_travel.csv
oecd_locations.csv
phonecodes.json
oecd_tourist_spending.csv
weather.zip
130. Sort index
131. Sort values
132. Concatenating data frames
133. Concatenating different data frames
134. Inner and outer joins
135. Merging: inner, left, right, and outer
136. Group by
137. Pivot tables
138. Exercise #12
Exercise #12 text
139. Exercise #12 solutions

Section 14: Plotting data frames

Pandas, part 14 -- plotting.ipynb
140. Plotting data frames
141. Bar plots
142. Stacked bar plots
143. Histograms
144. Pie plots
145. Box plots
146. Scatter plots
147. Scatter plots and colormaps
148. Scatter matrix
149. Exercise #13
Exercise #13 text
150. Exercise #13 solutions

Conclusion

151. Conclusion