Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save zhangyilun/786942e157678e390385 to your computer and use it in GitHub Desktop.
Save zhangyilun/786942e157678e390385 to your computer and use it in GitHub Desktop.
MindSumo - Capital One Transaction Data Analysis
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# MindSumo - Capital One - Use transaction data to categorize clients \n",
"##### Yilun Zhang\n",
"---"
]
},
{
"cell_type": "code",
"execution_count": 171,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# imports\n",
"import numpy as np\n",
"import scipy as sp\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# data\n",
"path = \"data/subscription_report.csv\"\n",
"df = pd.read_csv(path)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Id</th>\n",
" <th>Subscription ID</th>\n",
" <th>Amount (USD)</th>\n",
" <th>Transaction Date</th>\n",
" <th>Transaction Year</th>\n",
" <th>Transaction Day</th>\n",
" <th>Transaction Month</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1235</td>\n",
" <td>15447</td>\n",
" <td>1900</td>\n",
" <td>1966-01-01</td>\n",
" <td>1966</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1236</td>\n",
" <td>30674</td>\n",
" <td>7280</td>\n",
" <td>1966-01-01</td>\n",
" <td>1966</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1237</td>\n",
" <td>5293</td>\n",
" <td>3260</td>\n",
" <td>1966-01-01</td>\n",
" <td>1966</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1238</td>\n",
" <td>33782</td>\n",
" <td>4060</td>\n",
" <td>1966-01-02</td>\n",
" <td>1966</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1239</td>\n",
" <td>56714</td>\n",
" <td>6370</td>\n",
" <td>1966-01-02</td>\n",
" <td>1966</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Id Subscription ID Amount (USD) Transaction Date Transaction Year \\\n",
"0 1235 15447 1900 1966-01-01 1966 \n",
"1 1236 30674 7280 1966-01-01 1966 \n",
"2 1237 5293 3260 1966-01-01 1966 \n",
"3 1238 33782 4060 1966-01-02 1966 \n",
"4 1239 56714 6370 1966-01-02 1966 \n",
"\n",
" Transaction Day Transaction Month \n",
"0 1 1 \n",
"1 1 1 \n",
"2 1 1 \n",
"3 2 1 \n",
"4 2 1 "
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# head of data\n",
"df.head(5)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# split date to year, month and day\n",
"df[\"Transaction Year\"] = df[\"Transaction Date\"].map(lambda x: x[-4:])\n",
"df[\"Transaction Day\"] = df[\"Transaction Date\"].map(lambda x: x[-7:-5])\n",
"df[\"Transaction Month\"] = df[\"Transaction Date\"].map(lambda x: x[:2])"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# change data type\n",
"df[\"Transaction Year\"] = df[\"Transaction Year\"].astype(\"int\")\n",
"df[\"Transaction Day\"] = df[\"Transaction Day\"].astype(\"int\")\n",
"df[\"Transaction Month\"] = df[\"Transaction Month\"].astype(\"int\")"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# change Transaction Date to date\n",
"df[\"Transaction Date\"] = df[\"Transaction Date\"].map(lambda x: pd.to_datetime(x))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Get Subscription Type and Duration for each Subscription ID\n",
"---"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of unique subscription IDs: 27609\n"
]
}
],
"source": [
"# get all unique subscription ids\n",
"unique_sub_ids = df[\"Subscription ID\"].unique()\n",
"print \"Number of unique subscription IDs: \", len(unique_sub_ids)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# dictionary to store subscription type\n",
"sub_dict = {sub_id:0 for sub_id in unique_sub_ids}"
]
},
{
"cell_type": "code",
"execution_count": 239,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# function to determine subscription type and the subscription duration\n",
"# type:\n",
" # daily\n",
" # monthly\n",
" # yearly\n",
" # one-off\n",
"# duration:\n",
" # datetime format\n",
"def check_sub_type(subscription_id):\n",
" \n",
" # prepare data for this sucscription_id\n",
" df_sub = df[(df[\"Subscription ID\"] == subscription_id)]\n",
" df_sub = df_sub.sort(\"Id\")\n",
" trans_year = df_sub[\"Transaction Year\"]\n",
" trans_month = df_sub[\"Transaction Month\"]\n",
" trans_day = df_sub[\"Transaction Day\"]\n",
" \n",
" # check duration of subscription\n",
" start_date = df_sub[\"Transaction Date\"].irow(0)\n",
" end_date = df_sub[\"Transaction Date\"].irow(-1)\n",
" duration = end_date - start_date\n",
" \n",
" # check type\n",
" if len(df_sub) == 1: # only one record\n",
" return [\"one-off\", duration]\n",
" \n",
" if len(trans_day.unique()) == 1: # happened on the same day\n",
" if len(trans_month.unique()) == 1: # happened in the same month \n",
" return [\"yearly\", duration]\n",
" else: # happened in different months\n",
" return [\"monthly\", duration] \n",
" else: # happened in different months and on different days\n",
" return [\"daily\", duration]\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 240,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# check sub type for all ids\n",
"for key in sub_dict.keys():\n",
" sub_dict[key] = check_sub_type(key)"
]
},
{
"cell_type": "code",
"execution_count": 241,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# create data frame\n",
"submission_df = pd.DataFrame(columns=[\"Subscription Id\",\"Subscription Type\",\"Subscription Duration\"]) "
]
},
{
"cell_type": "code",
"execution_count": 242,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# add data to it\n",
"i = 0\n",
"for key in sub_dict.keys():\n",
" submission_df.loc[i] = [key,sub_dict[key][0],sub_dict[key][1]]\n",
" i += 1"
]
},
{
"cell_type": "code",
"execution_count": 243,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# submission\n",
"submission_df.to_csv(\"data/submission.csv\",index=False)"
]
},
{
"cell_type": "code",
"execution_count": 244,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Subscription Id</th>\n",
" <th>Subscription Type</th>\n",
" <th>Subscription Duration</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3159</td>\n",
" <td>monthly</td>\n",
" <td>2557 days</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3160</td>\n",
" <td>monthly</td>\n",
" <td>2038 days</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3164</td>\n",
" <td>one-off</td>\n",
" <td>0 days</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3165</td>\n",
" <td>daily</td>\n",
" <td>30 days</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>3168</td>\n",
" <td>one-off</td>\n",
" <td>0 days</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Subscription Id Subscription Type Subscription Duration\n",
"0 3159 monthly 2557 days\n",
"1 3160 monthly 2038 days\n",
"2 3164 one-off 0 days\n",
"3 3165 daily 30 days\n",
"4 3168 one-off 0 days"
]
},
"execution_count": 244,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# just a head\n",
"submission_df.head(5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Revenue for Each Year\n",
"---"
]
},
{
"cell_type": "code",
"execution_count": 113,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df_by_year = df.groupby(\"Transaction Year\").sum()\n",
"df_by_year = df_by_year[[\"Amount (USD)\"]]"
]
},
{
"cell_type": "code",
"execution_count": 302,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x114f76c90>"
]
},
"execution_count": 302,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x114f974d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df_by_year[\"Amount (USD)\"].plot(figsize=(16,8),title=\"Revenue by Year\",grid=True)"
]
},
{
"cell_type": "code",
"execution_count": 172,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# calculate revenue change for each year\n",
"# % change = (this year - last year) / last year\n",
"df_by_year[\"Revenue Change\"] = 0.0\n",
"for index_year in df_by_year.index:\n",
" if min(df_by_year.index) == index_year:\n",
" continue\n",
" else:\n",
" this_revenue = df_by_year[\"Amount (USD)\"][index_year]\n",
" last_revenue = df_by_year[\"Amount (USD)\"][index_year-1]\n",
" this_change = (this_revenue - last_revenue) / float(last_revenue)\n",
" df_by_year[\"Revenue Change\"][index_year] = this_change"
]
},
{
"cell_type": "code",
"execution_count": 173,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Amount (USD)</th>\n",
" <th>Revenue Change</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Transaction Year</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1966</th>\n",
" <td>36431250</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1967</th>\n",
" <td>55206230</td>\n",
" <td>0.515354</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1968</th>\n",
" <td>68890920</td>\n",
" <td>0.247883</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1969</th>\n",
" <td>77045920</td>\n",
" <td>0.118376</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1970</th>\n",
" <td>84949330</td>\n",
" <td>0.102581</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Amount (USD) Revenue Change\n",
"Transaction Year \n",
"1966 36431250 0.000000\n",
"1967 55206230 0.515354\n",
"1968 68890920 0.247883\n",
"1969 77045920 0.118376\n",
"1970 84949330 0.102581"
]
},
"execution_count": 173,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_by_year.head(5)"
]
},
{
"cell_type": "code",
"execution_count": 178,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"Amount (USD) 55206230.000000\n",
"Revenue Change 0.515354\n",
"Name: 1967, dtype: float64"
]
},
"execution_count": 178,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# find the maximum revenue change\n",
"df_by_year.sort(\"Revenue Change\").irow(-1)"
]
},
{
"cell_type": "code",
"execution_count": 179,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"Amount (USD) 874770.000000\n",
"Revenue Change -0.508203\n",
"Name: 2014, dtype: float64"
]
},
"execution_count": 179,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# find the lowest revenue change\n",
"df_by_year.sort(\"Revenue Change\").irow(0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Predict Revenue in 2015\n",
"---\n",
"- ignore and one-off subscriptions\n",
"- check if end year = 2014 \n",
" if yearly -> yes \n",
" if monthly -> check if month = 12 \n",
" if daily -> check if date = 28 and month = 12 "
]
},
{
"cell_type": "code",
"execution_count": 253,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# find subscription ids that have not ended yet\n",
"sub_id_cont = []\n",
"for subscription_id in submission_df[submission_df[\"Subscription Type\"] != \"one-off\"][\"Subscription Id\"]:\n",
" this_type = submission_df[submission_df[\"Subscription Id\"] == subscription_id].irow(0)[\"Subscription Type\"]\n",
" # get data for this sub_id\n",
" df_sub = df[df[\"Subscription ID\"] == subscription_id]\n",
" df_sub = df_sub.sort(\"Id\")\n",
" \n",
" # check duration of subscription\n",
" end_date = df_sub[\"Transaction Date\"].irow(-1)\n",
" \n",
" # check end_date\n",
" if this_type == \"yearly\":\n",
" if end_date.year == 2014:\n",
" sub_id_cont.append(int(subscription_id))\n",
" elif this_type == \"monthly\":\n",
" if end_date.year == 2014 and end_date.month == 12:\n",
" sub_id_cont.append(int(subscription_id))\n",
" elif this_type == \"daily\":\n",
" if end_date.year == 2014 and end_date.month == 12 and end_date.day == 28:\n",
" sub_id_cont.append(int(subscription_id))"
]
},
{
"cell_type": "code",
"execution_count": 264,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"There are 239 different subscriptions that are still going on.\n",
"[3377, 3455, 3587, 3843, 4429, 4640, 4685, 4804, 5507, 5557] ...\n"
]
}
],
"source": [
"print \"There are\",len(sub_id_cont), \"different subscriptions that are still going on.\"\n",
"print sub_id_cont[:10], \"...\""
]
},
{
"cell_type": "code",
"execution_count": 343,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Id</th>\n",
" <th>Subscription ID</th>\n",
" <th>Amount (USD)</th>\n",
" <th>Transaction Date</th>\n",
" <th>Transaction Year</th>\n",
" <th>Transaction Day</th>\n",
" <th>Transaction Month</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1050</th>\n",
" <td>2285</td>\n",
" <td>41333</td>\n",
" <td>7280</td>\n",
" <td>1966-03-03</td>\n",
" <td>1966</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2911</th>\n",
" <td>4146</td>\n",
" <td>47252</td>\n",
" <td>5230</td>\n",
" <td>1966-05-02</td>\n",
" <td>1966</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2922</th>\n",
" <td>4157</td>\n",
" <td>30148</td>\n",
" <td>5510</td>\n",
" <td>1966-05-02</td>\n",
" <td>1966</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5590</th>\n",
" <td>6825</td>\n",
" <td>9318</td>\n",
" <td>5510</td>\n",
" <td>1966-08-06</td>\n",
" <td>1966</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6342</th>\n",
" <td>7577</td>\n",
" <td>24463</td>\n",
" <td>390</td>\n",
" <td>1966-09-06</td>\n",
" <td>1966</td>\n",
" <td>6</td>\n",
" <td>9</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Id Subscription ID Amount (USD) Transaction Date Transaction Year \\\n",
"1050 2285 41333 7280 1966-03-03 1966 \n",
"2911 4146 47252 5230 1966-05-02 1966 \n",
"2922 4157 30148 5510 1966-05-02 1966 \n",
"5590 6825 9318 5510 1966-08-06 1966 \n",
"6342 7577 24463 390 1966-09-06 1966 \n",
"\n",
" Transaction Day Transaction Month \n",
"1050 3 3 \n",
"2911 2 5 \n",
"2922 2 5 \n",
"5590 6 8 \n",
"6342 6 9 "
]
},
"execution_count": 343,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# plot using only these 239 subscriptions\n",
"df_ongoing = df[df[\"Subscription ID\"].isin(sub_id_cont)]\n",
"df_ongoing.head(5)"
]
},
{
"cell_type": "code",
"execution_count": 350,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Transaction Year\n",
"1966 29930\n",
"1967 53940\n",
"1968 87450\n",
"1969 105440\n",
"1970 144520\n",
"Name: Amount (USD), dtype: int64\n",
"......\n",
"Transaction Year\n",
"2010 874770\n",
"2011 874770\n",
"2012 874770\n",
"2013 874770\n",
"2014 874770\n",
"Name: Amount (USD), dtype: int64\n"
]
}
],
"source": [
"# group transactions by year and sum the amount\n",
"df_ongoing_by_year = df_ongoing.groupby(\"Transaction Year\").sum()\n",
"print df_ongoing_by_year[\"Amount (USD)\"].head(5)\n",
"print \"......\"\n",
"print df_ongoing_by_year[\"Amount (USD)\"].tail(5)"
]
},
{
"cell_type": "code",
"execution_count": 349,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x1131a9e10>"
]
},
"execution_count": 349,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n8e0RwwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1198844d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot the amount\n",
"df_ongoing_by_year[\"Amount (USD)\"].plot(figsize=(16,8))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Comment:\n",
"- The annual revenue for ongoing subscriptions have flattened after year 1990.\n",
"- Meaning that there are no new or terminated subscriptions after 1990.\n",
"- The best guess for the revenue in 2015 is 874770."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment