Plotting campaign results (II)

Analyzing Marketing Campaigns with pandas

Jill Rosok

Data Scientist

Grouping by multiple columns

language = marketing.groupby(['date_served', 
                              'language_preferred'])\
                              ['user_id'].count()

print(language.head())
date_served  language_preferred
2018-01-01   Arabic                  3
             English               351
             German                  5
             Spanish                11
2018-01-02   Arabic                  4
Name: user_id, dtype: int64
Analyzing Marketing Campaigns with pandas

Unstacking after groupby

language = pd.DataFrame(language.unstack(level=1))

print(language.head())
language_preferred    Arabic    English    German    Spanish
date_served                
2018-01-01            3.0        351.0     5.0       11.0
2018-01-02            4.0        369.0     6.0       10.0
2018-01-03            3.0        349.0     3.0       8.0
2018-01-04            2.0        313.0     2.0       14.0
2018-01-05            NaN        310.0     1.0       14.0
Analyzing Marketing Campaigns with pandas

Plotting preferred language over time

language.plot()
plt.title('Daily language preferences')
plt.xlabel('Date')
plt.ylabel('Users')
plt.legend(loc = 'upper right', 
           labels = language.columns.values)
plt.show()
Analyzing Marketing Campaigns with pandas

daily_language_preferences.png

Analyzing Marketing Campaigns with pandas

Creating grouped bar charts

# Create DataFrame grouped by age and language preference
language_age = marketing.groupby(['language_preferred',
                                  'age_group'])\
                                 ['user_id'].count()
language_age = pd.DataFrame(language_age.unstack(level=0))
print(language_age.head())
language_preferred  Arabic  English  German  Spanish
age_group                                           
0-18 years              17     1409      20       66
19-24 years             25     1539      20       66
24-30 years             18     1424      18       71
30-36 years             19     1238      14       69
36-45 years             18     1251      17       55

Analyzing Marketing Campaigns with pandas

Plotting language preferences by age group

language_age.plot(kind='bar')
plt.title('Language preferences by age group')
plt.xlabel('Language')
plt.ylabel('Users')
plt.legend(loc = 'upper right', 
           labels = language_age.columns.values)
plt.show()
Analyzing Marketing Campaigns with pandas

language_age.png

Analyzing Marketing Campaigns with pandas

Let's practice!

Analyzing Marketing Campaigns with pandas

Preparing Video For Download...