{"cells":[{"metadata":{"_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","collapsed":true,"trusted":true},"cell_type":"code","source":"import numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nfrom collections import defaultdict\nfpath = \"../input/train.csv\"","execution_count":3,"outputs":[]},{"metadata":{"_cell_guid":"8b16831f-e4da-457f-bb9a-9f85579343f5","_uuid":"64017200fa027247a3594d73036a8d9fa1c9868f"},"cell_type":"markdown","source":"## How many samples in this file"},{"metadata":{"_cell_guid":"75844488-a64c-461f-a715-67c8b560e6ab","_uuid":"f48bde1eda7c75e4ebe8ac010c874ded3b776cbb","trusted":true},"cell_type":"code","source":"with open(fpath) as f:\n    columns = next(f).strip().split(\",\")\n    sample_counts = 0\n    click_dates = set([])\n    for line in f:\n        sample_counts += 1\n        click_dates.add(line.split(\",\")[-3][:10])\nprint(\"There are {} samples in this file including {} unique dates.\".format(sample_counts, len(click_dates)))","execution_count":2,"outputs":[]},{"metadata":{"_cell_guid":"7907ac1b-af5c-4274-bdda-849994fd1f2d","_uuid":"90a27592a91f9ba135b2880ef61e34d7decac4ef"},"cell_type":"markdown","source":"## How many samples on each day"},{"metadata":{"_cell_guid":"197dc678-a608-4e59-8c03-6b6efd40d9eb","_uuid":"45649b5469d47560ddaeccf7eb4599694073f68c","trusted":true},"cell_type":"code","source":"with open(fpath) as f:\n    _ = next(f)\n    sample_counts_on_each_day = defaultdict(int)\n    for line in f:\n        click_date = line.split(\",\")[-3][:10]\n        sample_counts_on_each_day[click_date] += 1\nfor date, count in sample_counts_on_each_day.items():\n    print(\"{}: {}\".format(date, count))","execution_count":4,"outputs":[]},{"metadata":{"_cell_guid":"3f8fa4eb-cb4c-4831-bb5a-204842bf696e","_uuid":"f1001111a27bd8057484e959db28f3e3f016d945"},"cell_type":"markdown","source":"## Get samples on a specific date"},{"metadata":{"_cell_guid":"572c0b16-5e6e-46e6-8bc7-b0263bff7b2c","_uuid":"1674ffa4fcd76c4b813fb19d8af9d8bb52b16c61","trusted":true,"collapsed":true},"cell_type":"code","source":"def get_samples_by_date(at):\n    nrows = 0\n    skiprows = 1\n    for date, count in sample_counts_on_each_day.items():\n        if date == at:\n            nrows = count\n        elif date < at:\n            skiprows += count\n    return pd.read_csv(fpath, skiprows=skiprows, nrows=nrows, names=columns, parse_dates=[\"click_time\"])\ndf_Samples = get_samples_by_date(\"2017-11-06\")","execution_count":5,"outputs":[]},{"metadata":{"trusted":true,"collapsed":true,"_uuid":"18609ffeaa80b45e43efdbc8275293e163989f10"},"cell_type":"code","source":"df_Samples.shape","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"ccf77631-a4de-4216-801a-7e3f5a20746a","_uuid":"d1a92cd5ae1ca21dccce51422a7c2da26005a15d","trusted":true},"cell_type":"code","source":"df_Samples.head()","execution_count":6,"outputs":[]},{"metadata":{"_cell_guid":"cd340e8a-dbc4-4187-bd03-39c4728b07b9","_uuid":"bbf1c1f403822a575b4723e6b5f542efca95d084","trusted":true},"cell_type":"code","source":"df_Samples.tail()","execution_count":7,"outputs":[]},{"metadata":{"_cell_guid":"69d305f2-b253-47c6-9167-f60e522c3ce5","_uuid":"64cd04c4c478be759b525b45aa96972e33c0b45a","collapsed":true,"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.4","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}