Analyzing Marketing Campaigns with pandas
Jill Rosok
Data Scientist
Prior to running the test determine:
What is the desired outcome of the test? What is our hypothesis?
What is the metric we are trying to impact (i.e., page views, conversions)?
Will we get enough traffic to our site to reach statistical significance and make a decision in a timely manner?
email = marketing[marketing['marketing_channel'] == 'Email'] allocation = email.groupby(['variant'])\ ['user_id'].nunique()
allocation.plot(kind='bar') plt.title('Personalization test allocation') plt.xticks(rotation = 0) plt.ylabel('# participants') plt.show()
# Group by user_id and variant
subscribers = email.groupby(['user_id',
'variant'])['converted'].max()
subscribers = pd.DataFrame(subscribers.unstack(level=1))
# Drop missing values from the control column
control = subscribers['control'].dropna()
# Drop missing values from the personalization column
personalization = subscribers['personalization'].dropna()
print("Control conversion rate:",
np.mean(control))
print("Personalization conversion rate:",
np.mean(personalization))
Control conversion rate: 0.2814814814814815
Personalization conversion rate: 0.3908450704225352
Analyzing Marketing Campaigns with pandas