Data Analysis with Python and Pandas
13h 36mIntermediate2024-09-30
Authors

Maven Analytics

Chris Bruehl
Course details
This hands-on, project-based course is designed to help you learn two of the most popular Python packages for data analysis: NumPy and pandas. Start with a NumPy primer to introduce arrays and array properties, practice common operations like indexing, slicing, filtering and sorting, and explore important concepts like vectorization and broadcasting. From there, dive into pandas and focus on the essential tools and methods to explore, analyze, aggregate and transform series and DataFrames. Practice plotting DataFrames with charts and graphs, manipulating time-series data, importing and exporting various file types, and combining DataFrames using common join methods.
Throughout the course, you'll play the role of data analyst for Maven Mega Mart, a large, multinational corporation that operates a chain of retail and grocery stores. Using the Python skills you learn throughout the course, work with members of the Maven Mega Mart team to analyze products, pricing, transactions, and more.
Throughout the course, you'll play the role of data analyst for Maven Mega Mart, a large, multinational corporation that operates a chain of retail and grocery stores. Using the Python skills you learn throughout the course, work with members of the Maven Mega Mart team to analyze products, pricing, transactions, and more.
Skills covered
pandasPythonData AnalysisProgramming LanguagesData ScienceBusiness Analysis and StrategyBusiness Software and ToolsOpen SourceSoftware DevelopmentOne-Off
Concepts
0. Introduction
- 01 - Course introduction
- 02 - Course structure and outline
- 03 - Introducing the course project
- 04 - Setting expectations
- 05 - Jupyter installation and launch
1. NumPy Primer
- 06 - pandas and NumPy intro
- 07 - NumPy arrays and array properties
- 08 - Challenge - Array basics
- 09 - Solution - Array basics
- 10 - Array creation
- 11 - Random number generation
- 12 - Challenge - Array creation
- 13 - Solution - Array creation
- 14 - Indexing and slicing arrays
- 15 - Challenge - Indexing and slicing arrays
- 16 - Solution - Indexing and slicing arrays
- 17 - Array operations
- 18 - Challenge - Array operations
- 19 - Solution - Array operations
- 20 - Filtering arrays and modifying array values
- 21 - The where() function
- 22 - Challenge - Filtering and modifying arrays
- 23 - Solution - Filtering and modifying arrays
- 24 - Array aggregation
- 25 - Array functions
- 26 - Sorting arrays
- 27 - Challenge - Aggregation and sorting
- 28 - Solution - Aggregation and sorting
- 29 - Vectorization
- 30 - Broadcasting
- 31 - Challenge - Bringing it all together
- 32 - Solution - Bringing it all together
- 33 - Key takeaways
2. pandas Series
- 34 - Series basics
- 35 - pandas data types and type conversion
- 36 - Challenge - Data types and type conversion
- 37 - Solution - Data types and type conversion
- 38 - The series index and custom indices
- 39 - The .iloc accessor
- 40 - The .loc accessor
- 41 - Duplicate index values and resetting the index
- 42 - Challenge - Accessing data and resetting the index
- 43 - Solution - Accessing data and resetting the index
- 44 - Filtering series and logical tests
- 45 - Sorting series
- 46 - Challenge - Sorting and filtering series
- 47 - Solution - Sorting and filtering series
- 48 - Numeric series operations
- 49 - Text series operations
- 50 - Challenge - Series operations
- 51 - Solution - Series operations
- 52 - Numerical series aggregation
- 53 - Categorical series aggregation
- 54 - Challenge - Series aggregation
- 55 - Solution - Series aggregation
- 56 - Missing data representation in pandas
- 57 - Identifying missing data
- 58 - Fixing missing data
- 59 - Challenge - Missing data
- 60 - Solution - Missing data
- 61 - Applying custom functions to series
- 62 - pandas where() vs. NumPy where()
- 63 - Challenge - apply() and where()
- 64 - Solution - apply() and where()
- 65 - Key takeaways
3. Intro to DataFrames
- 66 - DataFrame basics
- 67 - Creating a DataFrame
- 68 - Challenge - DataFrame basics
- 69 - Solution - DataFrame basics
- 70 - Exploring DataFrames - Heads, tails, and sample
- 71 - Exploring DataFrames - Info and describe
- 72 - Challenge - Exploring a DataFrame
- 73 - Solution - Exploring a DataFrame
- 74 - Accessing DataFrame columns
- 75 - Accessing DataFrame data with .iloc and .loc
- 76 - Challenge - Accessing DataFrame data
- 77 - Solution - Accessing DataFrame data
- 78 - Dropping columns and rows
- 79 - Identifying and dropping duplicates
- 80 - Challenge - Dropping data
- 81 - Solution - Dropping data
- 82 - Missing data
- 83 - Challenge - Missing data
- 84 - Solution - Missing data
- 85 - Filtering DataFrames
- 86 - Pro tip - The query() method
- 87 - Challenge - Filtering DataFrames
- 88 - Solution - Filtering DataFrames
- 89 - Sorting DataFrames
- 90 - Challenge - Sorting DataFrames
- 91 - Solution - Sorting DataFrames
- 92 - Renaming and reordering columns
- 93 - Challenge - Renaming and reordering columns
- 94 - Solution - Renaming and reordering columns
- 95 - Arithmetic and Boolean column creation
- 96 - Challenge - Arithmetic and Boolean columns
- 97 - Solution - Arithmetic and Boolean columns
- 98 - Pro tip - Advanced conditional columns with select()
- 99 - Challenge - The select() function
- 100 - Solution - The select() function
- 101 - The map() method
- 102 - Pro tip - Multiple column creation with assign()
- 103 - Challenge - map() and assign()
- 104 - Solution - map() and assign()
- 105 - The categorical data type
- 106 - Type conversion
- 107 - Pro tip - Memory usage and data types
- 108 - Pro tip - Downcasting numeric data types
- 109 - Challenge - DataFrame data types
- 110 - Solution - DataFrame data types
- 111 - Key takeaways
4. Aggregating and Reshaping DataFrames
- 112 - Basic aggregations
- 113 - The groupby() method
- 114 - Challenge - groupby()
- 115 - Solution - groupby()
- 116 - Grouping by multiple columns
- 117 - Challenge - Grouping by multiple columns
- 118 - Solution - Grouping by multiple columns
- 119 - MultiIndex DataFrames
- 120 - Modifying a MultiIndex
- 121 - Challenge - MultiIndex DataFrames
- 122 - Solution - MultiIndex DataFrames
- 123 - The agg() method and named aggregations
- 124 - Challenge - The agg() method
- 125 - Solution - The agg() method
- 126 - Pro tip - Transforming DataFrames
- 127 - Challenge - Transforming a DataFrame
- 128 - Solution - Transforming a DataFrame
- 129 - Pivot tables in pandas
- 130 - Multiple aggregation pivot tables
- 131 - Pro tip - Pivot table heatmaps
- 132 - Melting DataFrames
- 133 - Challenge - pivot() and melt()
- 134 - Solution - pivot() and melt()
- 135 - Key takeaways
5. Basic Data Visualization
- 136 - The Matplotlib API and the plot() method
- 137 - Challenge - Basic line chart
- 138 - Solution - Basic line chart
- 139 - Chart titles
- 140 - Chart colors
- 141 - Line styles
- 142 - Chart legends and gridlines
- 143 - Chart styles
- 144 - Challenge - Stylized line chart
- 145 - Solution - Stylized line chart
- 146 - Subplots and figure size
- 147 - Challenge - Subplots
- 148 - Solution - Subplots
- 149 - Bar charts
- 150 - Grouped and stacked bar charts
- 151 - Challenge - Bar charts
- 152 - Solution - Bar charts
- 153 - Pie charts and scatterplots
- 154 - Challenge - Scatterplots
- 155 - Solution - Scatterplots
- 156 - Histograms
- 157 - Challenge - Histograms
- 158 - Solution - Histograms
- 159 - Saving plots and further exploration
- 160 - Key takeaways
6. Mid-Course Project
- 161 - Mid-course project intro
- 162 - Solution - Mid-course project
7. Analyzing Dates and Times
- 163 - Times in Python and pandas
- 164 - Converting to datetimes
- 165 - Formatting dates
- 166 - Date and time parts
- 167 - Challenge - pandas datetime basics
- 168 - Solution - pandas datetime basics
- 169 - Time deltas and arithmetic
- 170 - Challenge - Time deltas
- 171 - Solution - Time deltas
- 172 - Time series indices
- 173 - Missing time series data
- 174 - Challenge - Missing time series data
- 175 - Solution - Missing time series data
- 176 - Shifting time series
- 177 - Pro tip - diff()
- 178 - Challenge - shift() and diff()
- 179 - Solution - shift() and diff()
- 180 - Aggregation and resampling
- 181 - Challenge - Resampling
- 182 - Solution - Resampling
- 183 - Rolling aggregations
- 184 - Challenge - Rolling aggregations
- 185 - Solution - Rolling aggregations
- 186 - Key takeaways
8. Importing and Exporting Data
- 187 - Preprocessing with read csv()
- 188 - Column selection
- 189 - Row selection and missing values
- 190 - Parsing dates and data types
- 191 - Pro tip - Converters
- 192 - Challenge - Importing data
- 193 - Solution - Importing data
- 194 - Importing from text and Excel files
- 195 - Exporting to flat files
- 196 - Challenge - Importing and exporting Excel data
- 197 - Solution - Importing and exporting Excel data
- 198 - Working with SQL databases
- 199 - Other supported file formats
- 200 - Key takeaways
9. Joining DataFrames
- 201 - Why use multiple tables
- 202 - Appending DataFrames
- 203 - Challenge - Appending DataFrames
- 204 - Solution - Appending DataFrames
- 205 - Joining DataFrames
- 206 - Join types
- 207 - Inner joins
- 208 - Left joins
- 209 - Challenge - Joining DataFrames
- 210 - Solution - Joining DataFrames
- 211 - The join() method
- 212 - Key takeaways
10. Final Course Project
- 213 - Final project intro
- 214 - Solution - Final project