-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathABTesting.py
More file actions
47 lines (27 loc) · 1.57 KB
/
ABTesting.py
File metadata and controls
47 lines (27 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import pandas as pd
ad_clicks = pd.read_csv('ad_clicks.csv')
print(ad_clicks.head())
ad_clicks_grouped = ad_clicks.groupby('utm_source')['user_id'].count().reset_index()
print(ad_clicks_grouped.head())
ad_clicks['is_click'] = ~ad_clicks['ad_click_timestamp'].isnull()
clicks_by_source = ad_clicks.groupby(['utm_source', 'is_click'])['user_id'].count().reset_index()
print(clicks_by_source)
clicks_pivot = pd.pivot_table(data=clicks_by_source, values='user_id', index='utm_source', columns='is_click').reset_index()
print(clicks_pivot)
clicks_pivot['percent_clicked'] = clicks_pivot[True]/(clicks_pivot[False]+clicks_pivot[True])
experimental = ad_clicks.groupby(['experimental_group', 'is_click'])['user_id'].count().reset_index()
print(experimental)
pivoted = pd.pivot_table(data= experimental, values='user_id', index='experimental_group', columns='is_click').reset_index()
print(pivoted)
a_clicks = ad_clicks[(ad_clicks['experimental_group'] == 'A')]
b_clicks = ad_clicks[(ad_clicks['experimental_group'] == 'B')]
a_group = a_clicks.groupby(['is_click','day'])['user_id'].count().reset_index()
print(a_group)
a_pivot = pd.pivot_table(data=a_group, values='user_id', index='day', columns='is_click').reset_index()
a_pivot['percentage_True'] = a_pivot[True]/(a_pivot[True]+a_pivot[False])
print(a_pivot)
b_group = b_clicks.groupby(['is_click','day'])['user_id'].count().reset_index()
print(b_group)
b_pivot = pd.pivot_table(data=b_group, values='user_id', index='day', columns='is_click').reset_index()
b_pivot['percentage_Tru'] = b_pivot[True]/(b_pivot[True]+b_pivot[False])
print(b_pivot)