Analyze customer churn data using Python and Jupyter Notebooks via IBM Open Data Analytics for z/OS


Imagine you are a bank with client retention issues — your customers are leaving the bank (churning). Using Jupyter Notebooks with IBM Open Data Analytics for z/OS (IzODA) to look at credit card transactional data, with the various Python libraries and the optimized data layer provided by IzODA, you can create robust data visualizations that allow you to look for key features as to why a customer may want to leave your bank.


The demo for this code pattern is an exploratory Jupyter Notebook. It analyzes customer personal data and customer credit card transaction data on the mainframe to reveal factors that might influence their decision to leave the bank.

In this fictional use case, you work for a bank that is experiencing customer retention issues — or in data scientist terms, customer churn. You oversee the data science team, which needs to analyze the data to see what features are good indicators of potential churn.

This demo is written in Python and includes many of the top Python libraries like Pandas and Matplotlib. It also does machine learning with Scikit-Learn. The demo uses two sets of data, a client information table with 6,001 records and a credit card transaction table with about 1.5 million records. This code pattern demonstrates how to use z/OS data with modern programming languages to analyze these two sets of data for key prediction features.

When you have completed this code pattern, you will understand how to:



  1. A data scientist interacts with a web UI.
  2. The web UI is the browser-based user interface for Jupyter Notebook.
  3. Jupyter Notebook is part of IzODA, running on z/OS.
  4. A VSAM dataset is accessed via a virtual table defined in Optimized Data Layer (ODL).
  5. DSDBC queries ODL for the VSAM date.


Find the detailed instructions for this code pattern in the README.

David Rice
Andrew Hicks