Skip to content

Instantly share code, notes, and snippets.

@joxer
Created September 13, 2017 19:09
Show Gist options
  • Save joxer/a7ae6797094de45538e4d65f701f8299 to your computer and use it in GitHub Desktop.
Save joxer/a7ae6797094de45538e4d65f701f8299 to your computer and use it in GitHub Desktop.
IPython Notebook - Facebook Friend interested in events through FacebookTrackingExposed CSV
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import csv\n",
"import pandas as pd\n",
"from datetime import datetime\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"21 2017-09-12 14:08:45\n",
"125 2017-09-12 14:08:45\n",
"135 2017-09-12 17:25:43\n",
"139 2017-09-12 19:13:20\n",
"245 2017-09-11 14:34:13\n",
"247 2017-09-12 14:08:45\n",
"256 2017-09-12 19:13:20\n",
"376 2017-09-11 21:49:24\n",
"431 2017-09-11 21:51:45\n",
"432 2017-09-11 19:26:31\n",
"Name: publicationTime, dtype: datetime64[ns]\n"
]
}
],
"source": [
"dataframe = pd.read_csv(\"friend_data.csv\").fillna(\"\")\n",
"dataframe = dataframe[[\"publicationTime\",\"source\"]]\n",
"index = dataframe[\"source\"].str.contains(\"is interested in an event.\")\n",
"times = dataframe[index][\"publicationTime\"]\n",
"print(pd.to_datetime(times))"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'2017-09-12 14': 3, '2017-09-12 17': 1, '2017-09-12 19': 2, '2017-09-11 14': 1, '2017-09-11 21': 2, '2017-09-11 19': 1}\n",
"[3, 1, 2, 1, 2, 1]\n",
"[0, 1, 2, 3, 4, 5]\n",
"['2017-09-12 14', '2017-09-12 17', '2017-09-12 19', '2017-09-11 14', '2017-09-11 21', '2017-09-11 19']\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY8AAAEpCAYAAABr364UAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGFtJREFUeJzt3XvUZXV93/H3BwaFKOKFaUVgGBK0CVoRnaAuk8rSGFFR\nVlJUtN6yMNNqrJqatGgsLk3SpbZLuxCrxULEa0y9omIsFOP9NhC8ALFOEltGUREERBAFvv1j79HH\nx2d4zm/mzJz9/Hi/1jprzmXP83w/nM18zt5nn31SVUiS1GKvRQ8gSVp7LA9JUjPLQ5LUzPKQJDWz\nPCRJzSwPSVIzy0OS1MzykCQ1szwkSc3WLeoXH3jggbVx48ZF/XpJWpMuvPDC71XV+kXPsbDy2Lhx\nI1u2bFnUr5ekNSnJ/130DOBuK0nSTrA8JEnNLA9JUjPLQ5LUzPKQJDVbtTyS7JvkC0m+lOSSJC9f\nYZk7JnlXkq1JPp9k4+4YVpI0DbNsedwEPKKqjgIeAByX5CHLljkZ+H5VHQG8FnjVfMeUJE3JquVR\ng+vHm/uMl+XfXXsCcPZ4/d3AI5NkblNKkiZlpvc8kuyd5GLgu8B5VfX5ZYscDFwOUFU3A9cC95jn\noJKk6ZjpE+ZVdQvwgCR3Bd6X5H5V9dUli6y0lbF864Qkm4HNABs2bNiJcQcbT/nwTv/dPekbr3zc\nokeQpN2i6WirqroG+BvguGUPbQMOBUiyDjgAuHqFv39GVW2qqk3r1y/81CySpJ00y9FW68ctDpLs\nB/wW8HfLFjsHeOZ4/UTggqr6hS0PSVIfZtltdRBwdpK9Gcrmr6rqQ0leAWypqnOAM4G3JtnKsMVx\n0m6bWJK0cKuWR1V9GTh6hftPXXL9R8AT5zuaJGmq/IS5JKmZ5SFJamZ5SJKaWR6SpGaWhySpmeUh\nSWpmeUiSmlkekqRmlockqZnlIUlqZnlIkppZHpKkZpaHJKmZ5SFJamZ5SJKaWR6SpGaWhySpmeUh\nSWpmeUiSmlkekqRmlockqZnlIUlqZnlIkppZHpKkZpaHJKmZ5SFJarZqeSQ5NMnHklyW5JIkL1hh\nmWOTXJvk4vFy6u4ZV5I0BetmWOZm4EVVdVGS/YELk5xXVZcuW+6TVXX8/EeUJE3NqlseVXVFVV00\nXv8BcBlw8O4eTJI0XU3veSTZCBwNfH6Fhx+a5EtJPpLkvjv4+5uTbEmy5corr2weVpI0DTOXR5I7\nA+8BXlhV1y17+CLgsKo6Cngd8P6VfkZVnVFVm6pq0/r163d2ZknSgs1UHkn2YSiOt1fVe5c/XlXX\nVdX14/VzgX2SHDjXSSVJkzHL0VYBzgQuq6rX7GCZe47LkeSY8edeNc9BJUnTMcvRVg8Dng58JcnF\n430vATYAVNUbgROB5yS5GbgROKmqajfMK0magFXLo6o+BWSVZU4HTp/XUJKkafMT5pKkZpaHJKmZ\n5SFJamZ5SJKaWR6SpGaWhySpmeUhSWpmeUiSmlkekqRmlockqZnlIUlqZnlIkppZHpKkZpaHJKmZ\n5SFJamZ5SJKaWR6SpGaWhySpmeUhSWpmeUiSmlkekqRmlockqZnlIUlqZnlIkppZHpKkZquWR5JD\nk3wsyWVJLknyghWWSZLTkmxN8uUkD9w940qSpmDdDMvcDLyoqi5Ksj9wYZLzqurSJcs8Brj3eHkw\n8IbxT0lSh1bd8qiqK6rqovH6D4DLgIOXLXYC8JYafA64a5KD5j6tJGkSmt7zSLIROBr4/LKHDgYu\nX3J7G79YMJKkTsyy2wqAJHcG3gO8sKquW/7wCn+lVvgZm4HNABs2bGgYU2vNxlM+vOgRZvKNVz5u\n0SMsjM+RdsVMWx5J9mEojrdX1XtXWGQbcOiS24cA31q+UFWdUVWbqmrT+vXrd2ZeSdIEzHK0VYAz\ngcuq6jU7WOwc4BnjUVcPAa6tqivmOKckaUJm2W31MODpwFeSXDze9xJgA0BVvRE4F3gssBW4Afi9\n+Y8qSZqKVcujqj7Fyu9pLF2mgD+Y11CSpGnzE+aSpGaWhySpmeUhSWpmeUiSmlkekqRmlockqZnl\nIUlqZnlIkppZHpKkZpaHJKmZ5SFJamZ5SJKaWR6SpGaWhySpmeUhSWpmeUiSmlkekqRmlockqZnl\nIUlqZnlIkppZHpKkZpaHJKmZ5SFJamZ5SJKaWR6SpGaWhySp2arlkeSsJN9N8tUdPH5skmuTXDxe\nTp3/mJKkKVk3wzJvBk4H3nIby3yyqo6fy0SSpMlbdcujqj4BXL0HZpEkrRHzes/joUm+lOQjSe67\no4WSbE6yJcmWK6+8ck6/WpK0p82jPC4CDquqo4DXAe/f0YJVdUZVbaqqTevXr5/Dr5YkLcIul0dV\nXVdV14/XzwX2SXLgLk8mSZqsXS6PJPdMkvH6MePPvGpXf64kabpWPdoqyTuBY4EDk2wDXgbsA1BV\nbwROBJ6T5GbgRuCkqqrdNrEkaeFWLY+qesoqj5/OcCivJOl2wk+YS5KaWR6SpGaWhySpmeUhSWpm\neUiSmlkekqRmlockqZnlIUlqZnlIkppZHpKkZpaHJKmZ5SFJamZ5SJKaWR6SpGaWhySpmeUhSWpm\neUiSmlkekqRmlockqZnlIUlqZnlIkppZHpKkZpaHJKmZ5SFJamZ5SJKarVoeSc5K8t0kX93B40ly\nWpKtSb6c5IHzH1OSNCWzbHm8GTjuNh5/DHDv8bIZeMOujyVJmrJVy6OqPgFcfRuLnAC8pQafA+6a\n5KB5DShJmp55vOdxMHD5ktvbxvskSZ1aN4efkRXuqxUXTDYz7Npiw4YNc/jV/dh4yocXPcJMvvHK\nxy16hIXxOZo+n6M9Zx5bHtuAQ5fcPgT41koLVtUZVbWpqjatX79+Dr9akrQI8yiPc4BnjEddPQS4\ntqqumMPPlSRN1Kq7rZK8EzgWODDJNuBlwD4AVfVG4FzgscBW4Abg93bXsJKkaVi1PKrqKas8XsAf\nzG0iSdLk+QlzSVIzy0OS1MzykCQ1szwkSc0sD0lSM8tDktTM8pAkNbM8JEnNLA9JUjPLQ5LUzPKQ\nJDWzPCRJzSwPSVIzy0OS1MzykCQ1szwkSc0sD0lSM8tDktTM8pAkNbM8JEnNLA9JUjPLQ5LUzPKQ\nJDWzPCRJzSwPSVIzy0OS1Gym8khyXJKvJdma5JQVHn9WkiuTXDxenj3/USVJU7FutQWS7A28HngU\nsA34YpJzqurSZYu+q6qetxtmlCRNzCxbHscAW6vqH6rqx8BfAifs3rEkSVM2S3kcDFy+5Pa28b7l\n/mWSLyd5d5JDV/pBSTYn2ZJky5VXXrkT40qSpmCW8sgK99Wy2x8ENlbV/YHzgbNX+kFVdUZVbaqq\nTevXr2+bVJI0GbOUxzZg6ZbEIcC3li5QVVdV1U3jzTcBD5rPeJKkKZqlPL4I3DvJ4UnuAJwEnLN0\ngSQHLbn5BOCy+Y0oSZqaVY+2qqqbkzwP+CiwN3BWVV2S5BXAlqo6B3h+kicANwNXA8/ajTNLkhZs\n1fIAqKpzgXOX3XfqkusvBl4839EkSVPlJ8wlSc0sD0lSM8tDktTM8pAkNbM8JEnNLA9JUjPLQ5LU\nzPKQJDWzPCRJzSwPSVIzy0OS1MzykCQ1szwkSc0sD0lSM8tDktTM8pAkNbM8JEnNLA9JUjPLQ5LU\nzPKQJDWzPCRJzSwPSVIzy0OS1MzykCQ1szwkSc1mKo8kxyX5WpKtSU5Z4fE7JnnX+Pjnk2yc96CS\npOlYtTyS7A28HngMcCTwlCRHLlvsZOD7VXUE8FrgVfMeVJI0HbNseRwDbK2qf6iqHwN/CZywbJkT\ngLPH6+8GHpkk8xtTkjQls5THwcDlS25vG+9bcZmquhm4FrjHPAaUJE3PuhmWWWkLonZiGZJsBjaP\nN69P8rUZfv+eciDwvXn+wCx+511vmXrLA/1l6i0PTC/TYXMaY5fMUh7bgEOX3D4E+NYOltmWZB1w\nAHD18h9UVWcAZ+zcqLtXki1VtWnRc8xTb5l6ywP9ZeotD/SZaR5m2W31ReDeSQ5PcgfgJOCcZcuc\nAzxzvH4icEFV/cKWhySpD6tueVTVzUmeB3wU2Bs4q6ouSfIKYEtVnQOcCbw1yVaGLY6TdufQkqTF\nmmW3FVV1LnDusvtOXXL9R8AT5zvaHjfJ3Wm7qLdMveWB/jL1lgf6zLTL4t4lSVIrT08iSWpmecwo\nyUGLnmGeessD/WXqLQ/0l6m3PC0sj1Uk2SvJrwF/keSPFz3PruotD/SXqbc80F+m3vLsDN/zmEGS\n/YB/BrwG+NuqetGCR9olveWB/jL1lgf6y9RbnlZueczmJ1V1MfB44Igka/3UK73lgf4y9ZYH+svU\nW54mlscOLD2x43i+LoA/AvauqqsWM9XO6y0P9JeptzzQX6be8uyKmT7ncTt1nyR3Au4LPBi4O8MJ\nIP8EYNzfeRDDq49PLmzK2fWWB/rL1Fse6C9Tb3l2mu95LDO+sngR8GrgL4BvAjcDnwW+WFXXJPm3\nwG8DVwAPB06rqtcvaOTb1Fse6C9Tb3mgv0y95ZmLqvKy7ALcBfgA8NYVHnsGw8pxv/H2w4D3Mmy2\nLnz220OeHjP1lqfHTL3l2dWL73msoKquq6oTgBuTnJ/kbgBJjmI4suKkqvrquHgYzjK8V5JJ/vfs\nLQ/0l6m3PNBfpt7y7LJFt9fUL4xHUjC8P/Q24AXLHv/fwMvG67/CsBLdZ9Fz317y9Jiptzw9Zuot\nz85c+mzEOaqqD1bV1hqOrPg+cP72x5KcDexVVS8f7/oewxe1fCzJ4Xt+2tX1lgf6y9RbHugvU295\ndoZHW81gfLNsP+BXgSdm+MKrJwMPHC/b7Q98huEreSf737a3PNBfpt7yQH+ZesvTqpsgu1MN2543\nJHkKwybqYQxHWzy6qn4CkOQuwFOB9cB7qurr4/371nDK+snoLQ/0l6m3PNBfpt7ytPJQ3Z2w/Q2w\nqrp1vL0OeDbDqQouqKoPjveH4ZsVnww8afvyU9NbHugvU295oL9MveVZje957ISqurWqbk1y5Pih\noIcBRwIXAx+CYQWpwf8EvgN8KMkhi5t6x3rLA/1l6i0P9Jeptzyr2pl32b389IiK3wFuAS5g+Ord\n/cb7t2/RrVuy7CuB/8eEj7joLU+PmXrL02Om3vLs6OKWxy6oqvcxvLo4Anh4Vd2YZK+qqvHPm5Mc\nnuTxwKOB/8VwOoNJ6i0P9JeptzzQX6be8uyI5bGLqupzwG8AP9x+13j/rUmOBs4CngC8qaqePS4/\nWb3lgf4y9ZYH+svUW56V+Ib5bpDkQcBvAb8LvI9hBblqfCy1xv6j95YH+svUWx7oL1N3edbYvJM3\nvvn1NeBVwOer6qNLHgvDh4du2b6yjEdo7FU/O73zpPSWB/rL1Fse6C9Tb3nA8tgtkvzzqvrKktt7\nAUfWz857s/2+Y4FnAncDXl1Vn9rTs86itzzQX6be8kB/mXrLs/B37Hu8MJbyktt3Bb4I/Pl4+27A\n0xjOf/MMhqMzLgJ+edGz3x7y9Jiptzw9Zuotj2+Y7wY1rglLbl8DPArYN8m/AB7J8Ori9Kp6Sw1H\nZ9zIsDJNTm95oL9MveWB/jL1lsfy2AOS7F1V11TVi4DLGL4w5gvjysF4yN7Xq+qi8fa+i5t2db3l\ngf4y9ZYH+su01vN4bqs9oJa8EQb8PnBYVW0GSHJ/4CHApUn2Ad4J/DDJPYEnj69OJqW3PNBfpt7y\nQH+Z1noetzz2kCWbrNcyHKZHkgcDxwEHAKcBfz5e3wx8HHhbkgPGozEmpbc80F+m3vJAf5nWch63\nPPa8i4FzkhwJHMNwzpuzGL4P+RHA8VV1U5K3A4cAP1i+r3RiessD/WXqLQ/0l2nN5bE89rCq+nSS\nY4CHM5zGeUsNnzrdD9gG3D/JD4D7AzcB+ye5btEryo70lgf6y9RbHugv01rM4+c8FizJ/sC+VXVl\nkkcCz2c42+axwH+uqjctcr5WveWB/jL1lgf6y7Qm8tQEjhe+PV+AxwAfAO423t4EnMfw4aDtyyw/\nPnyvRc99e8nTY6be8vSYaS3kcbfVglXVR5I8APhUkq8zfN/xZ6rqZUsWC+OJ1ZI8FDgxyZlVdeme\nn/i29ZYH+svUWx7oL9NayONuq4kYV5R9gb+rqmuSvIBhs/VVS5bZB7gj8O+BlzJ88vQbi5h3Nb3l\ngf4y9ZYH+ss05TyWx0QlORQ4Ezi/ql6dZF2NJ0lL8i7gx1X19IUO2aC3PNBfpt7yQH+ZppTH8pig\nDF8Yc+t4HPdDquqzSx47HbgP8Liq+sl4352r6voFjbuq3vJAf5la86wFvWWaWh4/JDhB4wqyroZm\n/+mXxCT5Q4YvmHnGkn+UDgCemOSNSe6wmIlvW295oL9MjXn2zvA93S+fah7oL9PU8lgeE1U/O4//\n45Ksz3AM+POAzVX17fHVB8BPgI8APwLOy/C9AZPTWx7oL1NDHoDvA8cDn0xylz0966x6yzSlPB5t\nNX03Af8HuBPwqKr6QoYTqt0CUFU3ADcAL0zyWoZvKnvzooadQW95oL9MO8yTJOOf+wHvAf4JsD9w\n3QLnnUVvmRaexy2Piauq8xj+sfkO8Ovjfbcse4Wx3Z2Be+3B8Zr1lgf6y7Qsz4PG+5Z+y92BwFOB\nuwDvqKpvLm7a2fSWaQp5LI81oKouZFhB7j6+mgA4IMk9kxyV5JQkrwYeBvz3hQ06o97yQH+ZluRZ\nn+Qe45u1leSXGP5RujtwQVV9YaGDNugt06LzeLTVGpNkA/A6hk+cfgz4JeDHDOfDuaSq/nHpLpOp\n6y0PdJvpKGArw7mXjgM+XVXvGh/bflrxNaW3THs8T03go/he2i4MHwa6HPi1FR5bfsqCfwr8O+Cg\nRc99e8nTYybgJQz72f+K4etR91spy1rJsxOZ7gf8D+Bei557Ks+Ru63WoKp6NfAfgLcn+d1ljy1/\ndXFXYG/gH5Pcdw+N2KS3PNBfpqr6T8CzGb7t7qCquvE2Xs1OPg80Z7qV4f2F85Ns2pNzzmpPP0ce\nbbVGVdU7knyT4dvGbmu5ryX5ErAPMNkPqfWWB/rLVFVvTfJt4NHj7RV3g6yVPDB7JuCyqvqTJJcC\nz0nyXIZPc09q19aefI58z6MTy19hZDxtQZL7AZ8G/lVVfWit7GufNc/iJmzX8BztVVW3Lm7SnbPW\n1zn4+edoPFouS5+LJC9l2HX13EXNuCvmuc6526oTy19hjCvInRk+nPanS1aQW5JM/nmfNQ9AkuOT\nvGqlnzMls2Qa7781yaFJfn0Rc+6stb7Owcq7FJPcK8mjM5wC5HCGgyBIsiHJiXt8yF0wz3XOLY/O\nZPgay+9U1VVJvgB8papOHh/76UnUxtsbgOuq6poFjbuqVfIsfZX4BmAj8LSqumphA8/gtjKNj7+C\n4Rvj1o2Xp1XV9xYz7ep6W+cAkrwYeCRwNcNnc64BvgW8Abiiqm7IcKaA/wYcARxT0z532dzXuTXx\nakBNDgY+keQihpXl5CWP3SHJryb5wyT/FbiI4dQF+634k6ZhxTxLjmnfG6CqngP8LfDZDKexnrId\nPkdJfpPhMMs/rqrjgQsZTrM9Zb2tcwA/BI4CPl5Vj62qp1bVH1XV3zOcZoaq2sZwjqm/Z3jhMmVz\nX+csj87U8MnTFwK/wrh5DZDk8QynxHguwyGk3wY+AZxSVTfu+Ulns1Kepftnt+9LT3Isw//wAQ5b\nyLAz2kGm7Z9Gv47h+6u/Pt5+D8NzNVm9rXMAVXUacALwr5M8B4bnaNzavXW8/fvALwOnAZctbNgZ\n7I51zvLo0LiibAKOyvDp5r2AZwH3rqrnAx9iOBrjvcAFCxt0RsvyPGDZG5j3T3Iyw7Ht1wJPqqoP\nLGjUmS3JdPS4S2H7/8gF/EaS3x7f1HwH4yvdKettnQOoqs8wfF7isCQbagQ/LcbfBP6a4cN4kz8g\nYN7rnO95dGz5ERRJzgSOBH4AvB94W1VN+eRvP2eFPE8C/g1wCfDXVfXhhQ23k/Kz72g4GvhGVX0/\nw5lSn8Dwj+9Xq+q4hQ7ZoLd1Dn723lqS9VV1ZZKNwJ8BfwO8b+rvsS03r3XOLY+OLdm83ne8fTLD\ncd2PAL601v4nXpLniCSvB/6UYZfBS9diccDPMjG8Ivx4ksMZdoHcbfzzRPi5XQyT1ts6Bz93BNaj\nM3xu57UMu37OX2vFAfNb5/yQ4O1AVf0IIMl/AS5l+BrLNfvcV9XWJG8Bzqyqi9bKP6y3parelOE7\nF85meI72BU6squuXHlW2VvS2zgFU1duSrAdOZdjS/caCR9olu7rOudvqdiTDaRV+XFVfXvQsWlmS\nQ6pqW5I7VtVNy3cDrTU9rnNJfgf4jwwnILx+rRX7cju7zlke0gSt9dLoXZI7VdUPFz3HPLWuc5aH\nJKmZb5hLkppZHpKkZpaHJKmZ5SFJamZ5SJKaWR6SpGaWhySp2f8H4Hx/FbChgMcAAAAASUVORK5C\nYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f1fdf752390>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bucket_per_hour = {}\n",
"bucket_per_day = {}\n",
"for row in times:\n",
" nameh = (datetime.strptime(row, \"%Y-%m-%dT%H:%M:%S.000Z\").strftime(\"%Y-%m-%d %H\"))\n",
" named = (datetime.strptime(row, \"%Y-%m-%dT%H:%M:%S.000Z\").strftime(\"%Y-%m-%d\"))\n",
"\n",
" bucket_per_hour[nameh] = 1 if bucket_per_hour.get(nameh) == None else bucket_per_hour[nameh]+1\n",
" bucket_per_day[named] = 1 if bucket_per_day.get(named) == None else bucket_per_day[named]+1\n",
"\n",
"\n",
"\n",
"\n",
"names = bucket_per_hour.keys()\n",
"\n",
"bd = plt.subplot()\n",
"indexes = [x for x in range(len(bucket_per_hour.values()))]\n",
"indexes_labels = [x for x in (bucket_per_hour.keys())]\n",
"vals = [ x for x in bucket_per_hour.values()]\n",
"print(bucket_per_hour)\n",
"print(vals)\n",
"print(indexes)\n",
"print(indexes_labels)\n",
"bd.bar(indexes,height=vals)\n",
"plt.xticks(indexes, indexes_labels, rotation='-40',ha=\"left\")\n",
"\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
" "
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.6",
"language": "python",
"name": "python36"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment