Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Learn Challenge: Define metric | U-Test
The Art of A/B Testing

book
Challenge: Define metric

Task

Swipe to start coding

In this task, you must add the 'Average Earnings per Click metric' to the control and test samples. After that, you should plot the histograms of the new columns and mark the mean values ​​of the metrics on the graph.

  1. Import libraries.
  2. Read the files.
  3. Define the 'Average Earnings per Click' metric and add it to both samples.
  4. Add a line of the mean value.

Solution

# Import libraries
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

# Read .csv files
df_control = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/c3b98ad3-420d-403f-908d-6ab8facc3e28/ab_control.csv', delimiter=';')
df_test = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/c3b98ad3-420d-403f-908d-6ab8facc3e28/ab_test.csv', delimiter=';')

# Define metric
df_test['Average Earnings per Click'] = df_test['Earning'] / df_test['Click']
df_control['Average Earnings per Click'] = df_control['Earning'] / df_control['Click']

# Ploting hist
sns.histplot(df_control['Average Earnings per Click'], color="#1e2635", label="AEC of Control Group")
sns.histplot(df_test['Average Earnings per Click'], color="#ff8a00", label="AEC of Test Group")

# Add mean line
plt.axvline(df_control['Average Earnings per Click'].mean(), color="#1e2635", linestyle='dashed', linewidth=1, label='Mean Control Group')
plt.axvline(df_test['Average Earnings per Click'].mean(), color="#ff8a00", linestyle='dashed', linewidth=1, label='Mean Test Group')

# Sign the axes
plt.xlabel('Average Earnings per Click')
plt.ylabel('Frequency')
plt.legend()
plt.title('Histogram of Average Earnings per Click')

# Show the result
plt.show()

Everything was clear?

How can we improve it?

Thanks for your feedback!

Section 5. Chapter 2
single

single

# Import libraries
___ ___ as plt
___ ___ as pd
___ ___ as sns

# Read .csv files
df_control = pd.___('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/c3b98ad3-420d-403f-908d-6ab8facc3e28/ab_control.csv', delimiter=';')
df_test = pd.___('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/c3b98ad3-420d-403f-908d-6ab8facc3e28/ab_test.csv', delimiter=';')

# Define metric
df_test['Average Earnings per Click'] = df_test['___'] / df_test['___']
df_control['Average Earnings per Click'] = df_control['___'] / df_control['___']

# Ploting hist
sns.histplot(df_control['Average Earnings per Click'], color="#1e2635", label="AEC of Control Group")
sns.histplot(df_test['Average Earnings per Click'], color="#ff8a00", label="AEC of Test Group")

# Add mean line
plt___(df_control['Average Earnings per Click']___, color="#1e2635", linestyle='dashed', linewidth=1, label='Mean Control Group')
plt___(df_test['Average Earnings per Click']___, color="#ff8a00", linestyle='dashed', linewidth=1, label='Mean Test Group')

# Sign the axes
plt.xlabel('Average Earnings per Click')
plt.ylabel('Frequency')
plt.legend()
plt.title('Histogram of Average Earnings per Click')

# Show the result
plt.show()

Ask AI

expand

Ask AI

ChatGPT

Ask anything or try one of the suggested questions to begin our chat

some-alt