In [3]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
In [15]:
df = pd.read_csv('~/Downloads/fatherly-iterable.csv',index_col=False)
In [16]:
df.head(1)
Out[16]:
In [6]:
df.columns
Out[6]:
In [18]:
df = df.drop(['Medium','Updated','Campaign ID','Status','Experiment Name','Experiment ID'],axis=1)
In [19]:
df.head(1)
Out[19]:
In [20]:
df['Launch Date'] = df['Launch Date'].apply(lambda x: x.split(" - ")[0])
In [22]:
df['Launch Date'] = pd.to_datetime(df['Launch Date'])
In [23]:
df.head(1)
Out[23]:
In [24]:
df.describe()
Out[24]:
In [25]:
df = df[df['Sent']>50000]
In [27]:
df.describe()
Out[27]:
In [28]:
df = df.set_index('Launch Date')
In [29]:
df.head(1)
Out[29]:
In [77]:
df_resampled = df.resample('M').sum()
In [78]:
df_resampled.head(1)
Out[78]:
In [79]:
df_resampled['Unique Open Rate'] = df_resampled['Unique Opens'] / df_resampled['Sent']
df_resampled['Unique Click Rate'] = df_resampled['Unique Clicks'] / df_resampled['Sent']
df_resampled['Total Open Rate'] = df_resampled['Total Opens'] / df_resampled['Sent']
df_resampled['Total Click Rate'] = df_resampled['Total Clicks'] / df_resampled['Sent']
df_resampled['Total Clicks / Opens'] = df_resampled['Total Clicks'] / df_resampled['Total Opens']
df_resampled['Unique Clicks / Opens'] = df_resampled['Unique Clicks'] / df_resampled['Unique Opens']
In [80]:
df_resampled.head(10)
Out[80]:
In [81]:
df_resampled.plot(y='Sent')
Out[81]:
In [82]:
df_resampled.tail(5)
Out[82]:
In [83]:
df_resampled = df_resampled[:-2]
In [84]:
df_resampled.plot(y=['Unique Open Rate','Sent'],subplots=True,figsize=(8,10))
Out[84]:
In [85]:
df_resampled.plot(y='Unique Clicks / Opens')
Out[85]:
In [113]:
df_resampled['Unsubscribe Rate'] = df_resampled['Unsubscribes'] / df_resampled['Sent']
In [62]:
df_resampled.plot(y='Unsubscribe Rate')
Out[62]:
In [63]:
df_resampled.plot(y='Sent')
Out[63]:
In [64]:
df_resampled.plot(y='Unique Clicks')
Out[64]:
In [86]:
df_resampled['Total Click Rate']
Out[86]:
In [87]:
df_resampled['Total Open Rate']
Out[87]:
In [89]:
df.describe()
Out[89]:
In [95]:
df[df['Total Open Rate']<.12]
Out[95]:
In [97]:
subs = pd.read_csv('~/Downloads/fatherly-subscribers.csv',index_col=False)
In [98]:
subs.head(1)
Out[98]:
In [102]:
subs.signupDate = subs.signupDate.apply(lambda x: str(x))
subs.signupDate = subs.signupDate.apply(lambda x: x.split(' ')[0])
subs.signupDate = pd.to_datetime(subs.signupDate)
In [104]:
subs = subs.set_index('signupDate')
In [105]:
subs['count'] = 1
subs_resampled = subs.resample('M').sum()
In [107]:
subs_resampled
Out[107]:
In [108]:
subs_resampled.plot()
Out[108]:
In [114]:
df_resampled['Unsubscribe Rate'].describe()
Out[114]:
In [ ]: