Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Book Overview & Buying Pandas 1.x Cookbook
  • Table Of Contents Toc
  • Feedback & Rating feedback
Pandas 1.x Cookbook

Pandas 1.x Cookbook

By : Matthew Harrison, Theodore Petrou
4.5 (28)
close
close
Pandas 1.x Cookbook

Pandas 1.x Cookbook

4.5 (28)
By: Matthew Harrison, Theodore Petrou

Overview of this book

The pandas library is massive, and it's common for frequent users to be unaware of many of its more impressive features. The official pandas documentation, while thorough, does not contain many useful examples of how to piece together multiple commands as one would do during an actual analysis. This book guides you, as if you were looking over the shoulder of an expert, through situations that you are highly likely to encounter. This new updated and revised edition provides you with unique, idiomatic, and fun recipes for both fundamental and advanced data manipulation tasks with pandas. Some recipes focus on achieving a deeper understanding of basic principles, or comparing and contrasting two similar operations. Other recipes will dive deep into a particular dataset, uncovering new and unexpected insights along the way. Many advanced recipes combine several different features across the pandas library to generate results.
Table of Contents (17 chapters)
close
close
15
Other Books You May Enjoy
16
Index

Apply performance

The .apply method on a Series and DataFrame is one of the slowest operations in pandas. In this recipe, we will explore the speed of it and see if we can debug what is going on.

How to do it…

  1. Let's time how long one use of the .apply method takes using the %%timeit cell magic in Jupiter. This is the code from the tweak_kag function that limits the cardinality of the country column (Q3):
    >>> %%timeit
    >>> def limit_countries(val):
    ...      if val in  {'United States of America', 'India', 'China'}:
    ...          return val
    ...      return 'Another'
    >>> q3 = df.Q3.apply(limit_countries).rename('Country')
    6.42 ms ± 1.22 ms per loop (mean ± std. dev. of 7 runs, 100 loops each)
    
  2. Let's look at using the .replace method instead of .apply and see if that improves performance:
    >>> %%timeit
    >>> other_values = df...

Unlock full access

Continue reading for free

A Packt free trial gives you instant online access to our library of over 7000 practical eBooks and videos, constantly updated with the latest in tech
bookmark search playlist download font-size

Change the font size

margin-width

Change margin width

day-mode

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Delete Bookmark

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete

Confirmation

Modal Close icon
claim successful

Buy this book with your credits?

Modal Close icon
Are you sure you want to buy this book with one of your credits?
Close
YES, BUY