Practical Business Python

Taking care of business, one python script at a time

Tue 26 January 2016

Learn More About Pandas By Building and Using a Weighted Average Function

Posted by Chris Moffitt in articles   

Pandas includes multiple built in functions such as sum, mean, max, min, etc. that you can apply to a DataFrame or grouped data. However, building and using your own function is a good way to learn more about how pandas works and can increase your productivity with data wrangling and analysis.

The weighted average is a good example use case because it is easy to understand but useful formula that is not included in pandas. I find that it can be more intuitive than a simple average when looking at certain collections of data. Building a weighted average function in pandas is relatively simple but can be incredibly useful when combined with other pandas functions such as groupby.

This article will discuss the basics of why you might choose to use a weighted average to look at your data then walk through how to build and use this function in pandas. The basic principles shown in this article will be helpful for building more complex analysis in pandas and should also be helpful in understanding how to work with grouped data in pandas.

Read more...


Wed 30 December 2015

Getting to the “Plateau of Productivity” with Python

Posted by Chris Moffitt in articles   

As we close out the year, I wanted to take a step back and write a post that will motivate people to learn python and apply it to their daily jobs. Based on some comments I’ve received (and my own personal observations), some people struggle to get started on this journey. They see the potential value of using python in their jobs but are not sure where to start and can not find the time to take the first steps. Closely related to this challenge is finding the perseverance to make it through the inevitable barriers you will encounter. My goal in this article is to provide some items to keep in mind so that you can be successful in your endeavors to learn python and apply it to your job. If you take the time (definitely no easy task) to develop your python skills, you can reap many benefits - outside of the obvious ones you may have started out seeking.

Read more...


Mon 07 December 2015

Creating Advanced Excel Workbooks with Python

Posted by Chris Moffitt in articles   

I have written several articles about using python and pandas to manipulate data and create useful Excel output. In my experience, no matter how strong the python tools are, there are times when you need to rely on Excel as the vehicle to communicate your message or further analyze the data. This article will walk through some additional improvements you can make to your Excel-based output by:

  • Adding Excel tables with XlsxWriter

  • Inserting custom VBA into your Excel file

  • Using COM for merging multiple Excel worksheets

Read more...


Mon 26 October 2015

Pandas 0.17 Release and Other Notes

Posted by Chris Moffitt in articles   

As many of you know, pandas released version 0.17.0 on October 9th. In typical pandas fashion there are a bunch of updates, bug fixes and new features which I encourage you to read all about here. I do not plan to go through all of the changes but there are a couple of key things that I think will be useful to me in my daily work that I will explore briefly in this article. In addition, I am including a couple of other tips and tricks for pandas that I use on a frequent basis and hope will be useful to you.

Read more...


Mon 14 September 2015

Adding a Simple GUI to Your Pandas Script

Posted by Chris Moffitt in articles   

Using python and pandas in the business world can be a very useful alternative to the pain of manipulating Excel files. While this combination of technologies is powerful, it can be challenging to convince others to use a python script - especially when many may be intimidated by using the command line. In this article I will show an example of how to easily create an end-user-friendly GUI using the Gooey library. This interface is based on wxWindows so it looks like a “native” application on Windows, Mac and Linux. Ultimately, I believe that presenting a simple user interface to your scripts can greatly increase the adoption of python in your place of business.

Read more...



Mon 13 July 2015

Best Practices for Managing Your Code Library

Posted by Chris Moffitt in articles   

Over time you have probably developed a set of python scripts that you use on a frequent basis to make your daily work more effective. However, as you start to collect a bunch of python files, the time you take take to manage them can increase greatly. Your once simple development environment can become an unmanageable mess; especially if you do not try to have some consistency and common patterns for your development process. This article will discuss some best practices to manage your python code base so that you can sustain and maintain it over the years without pulling your hair out in the process.

Read more...



Tue 09 June 2015

Collecting Data with Google Forms and Pandas

Posted by Chris Moffitt in articles   

Google Forms is a service that allows you to collect information via simple web forms. One of the useful features is that the forms will automatically save your data to a Google Sheet. This article will walk through how to create a form, authenticate using OAuth 2 and read all the responses into a pandas dataframe. Because the initial setup and authentication process is a little time consuming, this article will be the first in a two part series.

Read more...


Sun 17 May 2015

Notebooks Now on Github and Other Updates

Posted by Chris Moffitt in articles   

In case you missed it, github recently announced that Jupyter notebooks will be natively rendered by github. This useful new feature will make it easier for followers of pbpython to view notebooks through github as well as download them to your local system and follow along.

I have moved over 4 notebooks to github and set up the associated files so that it should be pretty straightforward for anyone to checkout the pbpython repo and work with the notebooks. This will also make it easier for others to follow along and help spot issues and make this collection of tips and tricks even more robust.

This post also contains a couple of helpful links I wanted to pass on and keep record of because I think they are really useful.

Read more...