Guide to data combination: Part 3 - More merging

First published on October 27, 2021

Last updated at November 22, 2021


5 minute read

Nathaniel Tjandra



As a step towards data processing, learn how to merge multiple datasets together and analyze the story behind the data.


  • Introduction

  • Before we begin

  • Merging all data

  • Email subscriptions

  • Conclusion


Nowadays, it’s common for products to integrate AI into many applications or features. In this guide, we’ll be looking at how AI is used in email marketing campaigns and get started with combining all our datasets together. Finally, we’ll wrap up this series with a look into data preparation so we’re ready to do machine learning model training with our dataset.

Collecting data on the latest campaign (Source: B2C)

Before we begin

By now, you should already be familiar with combining dataframes together, filtering and sorting. If not, read the 2nd part of our introduction series and data preparation series. We’ll start by introducing these 3 datasets, 



, and 



Merging all data

After taking a look at these dataset, we’ll be looking for similarities that can be used to 


 the datasets together. We’ll take the dataset with the most matching ids, user_emails and connect it with both the email_content and user profiles.

Glancing at the dataframe, we see that in user_emails there are 2 ids, a user_id, and the email_id. These correspond to the id in user_profile and email_content respectively.

I’ll start by renaming the columns from id to their matching column name.

user_id and email_id

Then we can call 


. I chose the left join here because our main dataset is on the left.

All the columns from all 3 datasets merged into 1

And that’s it. We’ve completed preparing our data for training a machine learning model.

Email subscriptions

Next, we’re going to make scrappy inferences based on the data. First, let’s get the raw data by answering questions about our email campaign user subscriptions. Then, we’ll move to creating a model to determine the likelihood of churn.

You’ve got to submit your next marketing report on your leads, the boss wants to know how well you’ve done and how the company has grown, if at all, since its inception.

To do this, you’ll need to grab the data on 3 customer metrics.

How many customers have unsubscribed at least once?

We start off by picking out the data that matters, the user_id and the unsubscribed status. Note, we filter out the remaining columns because we care about just the users and not the number of emails.

Filter where the user_id is unique and unsubscribed value is yes.

Which type of subscription service was the least popular?

Once again, we only want the user_id, sub status, and category.

Filter for the user_id, unsubscribed, and category.

Then we group these by each type of subscription, or “category”, and count.

A lot of people don’t like promotional emails!

Which topics are our customers not as interested in?

Once again, we only want the user_id, unsubscribed and theme.

Filter for the user_id, unsubscribed, and theme.

Customers tend to unsubscribe from lifestyle related emails.


Based on the metrics, we infer from the data that we’ll want to avoid promotional emails, as well as those about improving lifestyle. Users of the platform seem to be interested in emails about food and those which are purely transactional. In a future series, we’ll revisit this data to create a model that’s better than simply making inferences from picking the best of each category and theme.

Our customers love to spend money on food and always check the receipts. (Source: CMU)

Start building for free

No need for a credit card to get started.
Trying out Mage to build ranking models won’t cost a cent.

No need for a credit card to get started. Trying out Mage to build ranking models won’t cost a cent.