{"cells":[
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n\nfrom subprocess import check_output\n#print(check_output([\"ls\", \"../input\"]).decode(\"utf8\"))\n\n# Any results you write to the current directory are saved as output."
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "%matplotlib inline\nimport numpy as np\nimport pandas as pd \nfrom subprocess import check_output\n#print(check_output([\"ls\", \"../input\"]).decode(\"utf8\"))\nimport datetime\nimport seaborn as sns\nimport matplotlib.pyplot as plt"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "train1 = pd.read_csv(\"../input/train.csv\", parse_dates=['date_time'], nrows=10000000)"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "train1[\"date_time\"] = pd.to_datetime(train1[\"date_time\"], format='%Y-%m-%d', errors=\"coerce\")\ntrain1[\"srch_ci\"] = pd.to_datetime(train1[\"srch_ci\"], format='%Y-%m-%d', errors=\"coerce\")\ntrain1[\"search_span\"] = (train1[\"srch_ci\"] - train1[\"date_time\"]).astype('timedelta64[D]')"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "train_bookings = train1[train1['is_booking'] == 1].drop('is_booking', axis=1)\ntrain_clicks = train1[train1['is_booking'] == 0].drop('is_booking', axis=1)"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "train_bookings_package = train_bookings[train_bookings['is_package'] == 1]\ntrain_clicks_package = train_clicks[train_clicks['is_package'] == 1]"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "train_bookings_nonpackage = train_bookings[train_bookings['is_package'] == 0]\ntrain_clicks_nonpackage = train_clicks[train_clicks['is_package'] == 0]"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "find1 = train_bookings['search_span']"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "find1_bookings, f1count = np.unique(find1, return_counts=True)"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "np.sort(f1count)\n#represents the number of booking for each time of search span"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "most_visited1 = find1_bookings[f1count >= 1000 ]"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "most_visited1.shape "
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "train_bookings1 = train_bookings[train_bookings['search_span'].isin(most_visited1)]"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "train_bookings1.shape"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "train_bookings1.info()"
 },
 {
  "cell_type": "markdown",
  "metadata": {},
  "source": "train_clicks_nonpackage1[train_clicks_nonpackage1['search_span'].notnull()]"
 },
 {
  "cell_type": "markdown",
  "metadata": {},
  "source": "train_clicks_nonpackage2 = train_clicks_nonpackage1[train_clicks_nonpackage['hotel_country'] == 50]"
 },
 {
  "cell_type": "markdown",
  "metadata": {},
  "source": "train_clicks_nonpackage2.search_span"
 },
 {
  "cell_type": "markdown",
  "metadata": {},
  "source": "The following graphs are for all bookings with frequency greater than 1k"
 },
 {
  "cell_type": "markdown",
  "metadata": {},
  "source": "train_bookings1 = train_bookings1[np.isfinite(train_bookings1['EPS'])]"
 },
 {
  "cell_type": "markdown",
  "metadata": {},
  "source": "tb2 = train_bookings1[train_bookings1 < 0] = 0 "
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "sns.set(style=\"darkgrid\")\nax = sns.countplot(x=\"search_span\", hue=\"is_mobile\", data=train_bookings1)"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "sns.set(style=\"darkgrid\")\nax = sns.countplot(x=\"search_span\", hue=\"is_package\", data=train_bookings1)"
 },
 {
  "cell_type": "code",
  "execution_count": null,
  "metadata": {
   "collapsed": false
  },
  "outputs": [],
  "source": "f, ax = plt.subplots(figsize=(15, 25))\nsns.countplot(y='search_span', data=train_bookings1)\n#plt.title('Bookings of hotels per country for countries with booking greater than mean')\nplt.show()"
 }
],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"}}, "nbformat": 4, "nbformat_minor": 0}