diff --git a/src/explore.ipynb b/src/explore.ipynb
index 06b41e325993b25359baa6e5e170beccdbbdf5be..15079c74f0870b4266814bfd615767dc996efb4b 100644
--- a/src/explore.ipynb
+++ b/src/explore.ipynb
@@ -1749,12 +1749,224 @@
    "source": [
     "# Which actions were triggered how often over the years\n",
     "df_actions = pd.read_csv(\"quarry-34047-number-of-abuse-filters-filter-actions-per-month-en-wiki-run346492.csv\", sep=',')\n",
-    "df_actions.fillna('log')"
+    "df_actions['LogMonth'] = pd.to_datetime(df_actions['LogMonth'], format=\"%Y%m\")\n",
+    "df_actions.fillna('log only')\n"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 30,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "     LogMonth FilterActions   Freq\n",
+      "14 2018-12-01           NaN  83958\n",
+      "15 2018-12-01      disallow  33417\n",
+      "16 2018-12-01  disallow,tag      6\n",
+      "17 2018-12-01           tag  76257\n",
+      "18 2018-12-01          warn  32649\n",
+      "19 2018-11-01           NaN  83866\n",
+      "20 2018-11-01      disallow  43244\n",
+      "21 2018-11-01  disallow,tag      5\n",
+      "22 2018-11-01           tag  86062\n",
+      "23 2018-11-01          warn  40056\n",
+      "24 2018-10-01           NaN  87070\n",
+      "25 2018-10-01      disallow  38163\n",
+      "26 2018-10-01  disallow,tag      8\n",
+      "27 2018-10-01           tag  86140\n",
+      "28 2018-10-01          warn  45057\n",
+      "29 2018-09-01           NaN  88941\n",
+      "30 2018-09-01      disallow  27452\n",
+      "31 2018-09-01  disallow,tag      1\n",
+      "32 2018-09-01           tag  75443\n",
+      "33 2018-09-01          warn  38517\n",
+      "34 2018-08-01           NaN  97404\n",
+      "35 2018-08-01      disallow  22387\n",
+      "36 2018-08-01  disallow,tag      2\n",
+      "37 2018-08-01           tag  69333\n",
+      "38 2018-08-01          warn  26919\n",
+      "39 2018-07-01           NaN  93867\n",
+      "40 2018-07-01      disallow  18885\n",
+      "41 2018-07-01  disallow,tag      3\n",
+      "42 2018-07-01           tag  68355\n",
+      "43 2018-07-01          warn  24367\n",
+      "44 2018-06-01           NaN  87889\n",
+      "45 2018-06-01      disallow  21996\n",
+      "46 2018-06-01  disallow,tag      3\n",
+      "47 2018-06-01           tag  70779\n",
+      "48 2018-06-01          warn  28707\n",
+      "49 2018-05-01           NaN  83190\n",
+      "50 2018-05-01      disallow  30660\n",
+      "51 2018-05-01  disallow,tag      2\n",
+      "52 2018-05-01           tag  81854\n",
+      "53 2018-05-01          warn  42529\n",
+      "54 2018-04-01           NaN  88356\n",
+      "55 2018-04-01      disallow  30991\n",
+      "56 2018-04-01  disallow,tag      2\n",
+      "57 2018-04-01           tag  83492\n",
+      "58 2018-04-01          warn  40016\n",
+      "59 2018-03-01           NaN  89214\n",
+      "60 2018-03-01      disallow  34215\n",
+      "61 2018-03-01  disallow,tag     14\n",
+      "62 2018-03-01           tag  87523\n",
+      "63 2018-03-01          warn  44465\n",
+      "64 2018-02-01           NaN  62171\n",
+      "65 2018-02-01      disallow  32644\n",
+      "66 2018-02-01  disallow,tag      9\n",
+      "67 2018-02-01           tag  76656\n",
+      "68 2018-02-01          warn  42068\n",
+      "69 2018-01-01           NaN  73898\n",
+      "70 2018-01-01      disallow  32164\n",
+      "71 2018-01-01  disallow,tag     16\n",
+      "72 2018-01-01           tag  82561\n",
+      "73 2018-01-01          warn  47066\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "15    33417\n",
+       "20    43244\n",
+       "25    38163\n",
+       "30    27452\n",
+       "35    22387\n",
+       "40    18885\n",
+       "45    21996\n",
+       "50    30660\n",
+       "55    30991\n",
+       "60    34215\n",
+       "65    32644\n",
+       "70    32164\n",
+       "Name: Freq, dtype: int64"
+      ]
+     },
+     "execution_count": 30,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "mask2018 = (df_actions['LogMonth'] >= '2018-01-01') & (df_actions['LogMonth'] < '2019-01-01')\n",
+    "actions_2018 = df_actions.loc[mask2018]\n",
+    "print (actions_2018)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 51,
+   "metadata": {},
+   "outputs": [
+    {
+     "ename": "ValueError",
+     "evalue": "shape mismatch: objects cannot be broadcast to a single shape",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
+      "\u001b[0;32m<ipython-input-51-46c8522bf62c>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      5\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mactions_2018\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'FilterActions'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfillna\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'log_only'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munique\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      6\u001b[0m     \u001b[0mac\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mactions_2018\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfillna\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'log_only'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mquery\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'FilterActions==@a'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m     \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbar\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mind\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mac\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Freq'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwidth\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbottom\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0my_offset\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      8\u001b[0m     \u001b[0my_offset\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0my_offset\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mac\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Freq'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      9\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m~/uni/ma-arbeit-filters/src/env3/lib/python3.6/site-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36mbar\u001b[0;34m(x, height, width, bottom, align, data, **kwargs)\u001b[0m\n\u001b[1;32m   2455\u001b[0m     return gca().bar(\n\u001b[1;32m   2456\u001b[0m         \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mheight\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwidth\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mwidth\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbottom\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mbottom\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0malign\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0malign\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2457\u001b[0;31m         **({\"data\": data} if data is not None else {}), **kwargs)\n\u001b[0m\u001b[1;32m   2458\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2459\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m~/uni/ma-arbeit-filters/src/env3/lib/python3.6/site-packages/matplotlib/__init__.py\u001b[0m in \u001b[0;36minner\u001b[0;34m(ax, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1808\u001b[0m                         \u001b[0;34m\"the Matplotlib list!)\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mlabel_namer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1809\u001b[0m                         RuntimeWarning, stacklevel=2)\n\u001b[0;32m-> 1810\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1811\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1812\u001b[0m         inner.__doc__ = _add_data_doc(inner.__doc__,\n",
+      "\u001b[0;32m~/uni/ma-arbeit-filters/src/env3/lib/python3.6/site-packages/matplotlib/axes/_axes.py\u001b[0m in \u001b[0;36mbar\u001b[0;34m(self, x, height, width, bottom, align, **kwargs)\u001b[0m\n\u001b[1;32m   2249\u001b[0m         x, height, width, y, linewidth = np.broadcast_arrays(\n\u001b[1;32m   2250\u001b[0m             \u001b[0;31m# Make args iterable too.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2251\u001b[0;31m             np.atleast_1d(x), height, width, y, linewidth)\n\u001b[0m\u001b[1;32m   2252\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2253\u001b[0m         \u001b[0;31m# Now that units have been converted, set the tick locations.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m~/uni/ma-arbeit-filters/src/env3/lib/python3.6/site-packages/numpy/lib/stride_tricks.py\u001b[0m in \u001b[0;36mbroadcast_arrays\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m    250\u001b[0m     \u001b[0margs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_m\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msubok\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msubok\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0m_m\u001b[0m \u001b[0;32min\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    251\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 252\u001b[0;31m     \u001b[0mshape\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_broadcast_shape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    253\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    254\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mshape\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0marray\u001b[0m \u001b[0;32min\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m~/uni/ma-arbeit-filters/src/env3/lib/python3.6/site-packages/numpy/lib/stride_tricks.py\u001b[0m in \u001b[0;36m_broadcast_shape\u001b[0;34m(*args)\u001b[0m\n\u001b[1;32m    185\u001b[0m     \u001b[0;31m# use the old-iterator because np.nditer does not handle size 0 arrays\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    186\u001b[0m     \u001b[0;31m# consistently\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 187\u001b[0;31m     \u001b[0mb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbroadcast\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;36m32\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    188\u001b[0m     \u001b[0;31m# unfortunately, it cannot handle 32 or more arguments directly\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    189\u001b[0m     \u001b[0;32mfor\u001b[0m \u001b[0mpos\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m32\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m31\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;31mValueError\u001b[0m: shape mismatch: objects cannot be broadcast to a single shape"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "ind = np.arange(12)    # the x locations for the groups\n",
+    "width = 0.35       # the width of the bars: can also be len(x) sequence\n",
+    "y_offset = np.zeros(len(ind))\n",
+    "\n",
+    "for a in actions_2018['FilterActions'].fillna('log_only').unique():\n",
+    "    ac = actions_2018.fillna('log_only').query('FilterActions==@a')\n",
+    "    plt.bar(ind, ac['Freq'], width, bottom=y_offset)\n",
+    "    y_offset = y_offset + ac['Freq']\n",
+    "\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 36,
+   "metadata": {},
+   "outputs": [
+    {
+     "ename": "ValueError",
+     "evalue": "shape mismatch: objects cannot be broadcast to a single shape",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
+      "\u001b[0;32m<ipython-input-36-c599c7c7dd11>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m     11\u001b[0m \u001b[0mp1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbar\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mind\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdisallow\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Freq'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwidth\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     12\u001b[0m \u001b[0mp2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbar\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mind\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdisallow_tag\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Freq'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwidth\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbottom\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdisallow\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Freq'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 13\u001b[0;31m \u001b[0mp3\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbar\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mind\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtag\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Freq'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwidth\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbottom\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdisallow\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Freq'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mdisallow_tag\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Freq'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     14\u001b[0m \u001b[0mp4\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbar\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mind\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwarn\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Freq'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwidth\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbottom\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdisallow\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Freq'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mdisallow_tag\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Freq'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mtag\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Freq'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     15\u001b[0m \u001b[0mp5\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbar\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mind\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlog\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Freq'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwidth\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbottom\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdisallow\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Freq'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mdisallow_tag\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Freq'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mtag\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Freq'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mwarn\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Freq'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m~/uni/ma-arbeit-filters/src/env3/lib/python3.6/site-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36mbar\u001b[0;34m(x, height, width, bottom, align, data, **kwargs)\u001b[0m\n\u001b[1;32m   2455\u001b[0m     return gca().bar(\n\u001b[1;32m   2456\u001b[0m         \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mheight\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwidth\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mwidth\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbottom\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mbottom\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0malign\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0malign\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2457\u001b[0;31m         **({\"data\": data} if data is not None else {}), **kwargs)\n\u001b[0m\u001b[1;32m   2458\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2459\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m~/uni/ma-arbeit-filters/src/env3/lib/python3.6/site-packages/matplotlib/__init__.py\u001b[0m in \u001b[0;36minner\u001b[0;34m(ax, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m   1808\u001b[0m                         \u001b[0;34m\"the Matplotlib list!)\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mlabel_namer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1809\u001b[0m                         RuntimeWarning, stacklevel=2)\n\u001b[0;32m-> 1810\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1811\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1812\u001b[0m         inner.__doc__ = _add_data_doc(inner.__doc__,\n",
+      "\u001b[0;32m~/uni/ma-arbeit-filters/src/env3/lib/python3.6/site-packages/matplotlib/axes/_axes.py\u001b[0m in \u001b[0;36mbar\u001b[0;34m(self, x, height, width, bottom, align, **kwargs)\u001b[0m\n\u001b[1;32m   2249\u001b[0m         x, height, width, y, linewidth = np.broadcast_arrays(\n\u001b[1;32m   2250\u001b[0m             \u001b[0;31m# Make args iterable too.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2251\u001b[0;31m             np.atleast_1d(x), height, width, y, linewidth)\n\u001b[0m\u001b[1;32m   2252\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2253\u001b[0m         \u001b[0;31m# Now that units have been converted, set the tick locations.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m~/uni/ma-arbeit-filters/src/env3/lib/python3.6/site-packages/numpy/lib/stride_tricks.py\u001b[0m in \u001b[0;36mbroadcast_arrays\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m    250\u001b[0m     \u001b[0margs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_m\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msubok\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msubok\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0m_m\u001b[0m \u001b[0;32min\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    251\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 252\u001b[0;31m     \u001b[0mshape\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_broadcast_shape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    253\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    254\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mshape\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0marray\u001b[0m \u001b[0;32min\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m~/uni/ma-arbeit-filters/src/env3/lib/python3.6/site-packages/numpy/lib/stride_tricks.py\u001b[0m in \u001b[0;36m_broadcast_shape\u001b[0;34m(*args)\u001b[0m\n\u001b[1;32m    185\u001b[0m     \u001b[0;31m# use the old-iterator because np.nditer does not handle size 0 arrays\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    186\u001b[0m     \u001b[0;31m# consistently\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 187\u001b[0;31m     \u001b[0mb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbroadcast\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;36m32\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    188\u001b[0m     \u001b[0;31m# unfortunately, it cannot handle 32 or more arguments directly\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    189\u001b[0m     \u001b[0;32mfor\u001b[0m \u001b[0mpos\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m32\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m31\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;31mValueError\u001b[0m: shape mismatch: objects cannot be broadcast to a single shape"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "disallow = actions_2018.query('FilterActions==\"disallow\"')\n",
+    "disallow_tag = actions_2018.query('FilterActions==\"disallow,tag\"')\n",
+    "tag = actions_2018.query('FilterActions==\"tag\"')\n",
+    "warn = actions_2018.query('FilterActions==\"warn\"')\n",
+    "log = actions_2018.fillna('log_only').query('FilterActions==\"log_only\"')\n",
+    "\n",
+    "\n",
+    "ind = np.arange(12)    # the x locations for the groups\n",
+    "width = 0.35       # the width of the bars: can also be len(x) sequence\n",
+    "\n",
+    "'''\n",
+    "p1 = plt.bar(ind, disallow['Freq'], width)\n",
+    "p2 = plt.bar(ind, disallow_tag['Freq'], width, bottom=disallow['Freq'])\n",
+    "p3 = plt.bar(ind, tag['Freq'], width, bottom=(disallow['Freq']+disallow_tag['Freq']))\n",
+    "p4 = plt.bar(ind, warn['Freq'], width, bottom=(disallow['Freq']+disallow_tag['Freq']+tag['Freq']))\n",
+    "p5 = plt.bar(ind, log['Freq'], width, bottom=(disallow['Freq']+disallow_tag['Freq']+tag['Freq']+warn['Freq']))\n",
+    "\n",
+    "plt.ylabel('Frequency of edit filter actions')\n",
+    "plt.title('Edit filter actions per month')\n",
+    "plt.xticks(ind, ('G1', 'G2', 'G3', 'G4', 'G5'))\n",
+    "plt.legend((p1[0], p2[0], p3[0], p4[0], p5[0]), ('disallow', 'disallow, tag', 'tag', 'warn', 'log only'))\n",
+    "'''\n",
+    "\n",
+    "\n",
+    "\n",
+    "plt.show()\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 23,
    "metadata": {
     "scrolled": true
    },
@@ -1788,181 +2000,181 @@
        "  <tbody>\n",
        "    <tr>\n",
        "      <th>0</th>\n",
-       "      <td>201903</td>\n",
+       "      <td>2019-03-01</td>\n",
        "      <td>autocreateaccount</td>\n",
        "      <td>47</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>1</th>\n",
-       "      <td>201903</td>\n",
+       "      <td>2019-03-01</td>\n",
        "      <td>createaccount</td>\n",
        "      <td>4780</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>2</th>\n",
-       "      <td>201903</td>\n",
+       "      <td>2019-03-01</td>\n",
        "      <td>delete</td>\n",
        "      <td>5</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>3</th>\n",
-       "      <td>201903</td>\n",
+       "      <td>2019-03-01</td>\n",
        "      <td>edit</td>\n",
        "      <td>37950</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>4</th>\n",
-       "      <td>201903</td>\n",
+       "      <td>2019-03-01</td>\n",
        "      <td>move</td>\n",
        "      <td>84</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>5</th>\n",
-       "      <td>201903</td>\n",
+       "      <td>2019-03-01</td>\n",
        "      <td>upload</td>\n",
        "      <td>3</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>6</th>\n",
-       "      <td>201902</td>\n",
+       "      <td>2019-02-01</td>\n",
        "      <td>autocreateaccount</td>\n",
        "      <td>454</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>7</th>\n",
-       "      <td>201902</td>\n",
+       "      <td>2019-02-01</td>\n",
        "      <td>createaccount</td>\n",
        "      <td>25204</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>8</th>\n",
-       "      <td>201902</td>\n",
+       "      <td>2019-02-01</td>\n",
        "      <td>delete</td>\n",
        "      <td>5</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>9</th>\n",
-       "      <td>201902</td>\n",
+       "      <td>2019-02-01</td>\n",
        "      <td>edit</td>\n",
        "      <td>210488</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>10</th>\n",
-       "      <td>201902</td>\n",
+       "      <td>2019-02-01</td>\n",
        "      <td>move</td>\n",
        "      <td>445</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>11</th>\n",
-       "      <td>201902</td>\n",
+       "      <td>2019-02-01</td>\n",
        "      <td>upload</td>\n",
        "      <td>10</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>12</th>\n",
-       "      <td>201901</td>\n",
+       "      <td>2019-01-01</td>\n",
        "      <td>autocreateaccount</td>\n",
        "      <td>281</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>13</th>\n",
-       "      <td>201901</td>\n",
+       "      <td>2019-01-01</td>\n",
        "      <td>createaccount</td>\n",
        "      <td>27924</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>14</th>\n",
-       "      <td>201901</td>\n",
+       "      <td>2019-01-01</td>\n",
        "      <td>delete</td>\n",
        "      <td>21</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>15</th>\n",
-       "      <td>201901</td>\n",
+       "      <td>2019-01-01</td>\n",
        "      <td>edit</td>\n",
        "      <td>223870</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>16</th>\n",
-       "      <td>201901</td>\n",
+       "      <td>2019-01-01</td>\n",
        "      <td>move</td>\n",
        "      <td>568</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>17</th>\n",
-       "      <td>201901</td>\n",
+       "      <td>2019-01-01</td>\n",
        "      <td>upload</td>\n",
        "      <td>4</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>18</th>\n",
-       "      <td>201812</td>\n",
+       "      <td>2018-12-01</td>\n",
        "      <td>autocreateaccount</td>\n",
        "      <td>102</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>19</th>\n",
-       "      <td>201812</td>\n",
+       "      <td>2018-12-01</td>\n",
        "      <td>createaccount</td>\n",
        "      <td>35405</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>20</th>\n",
-       "      <td>201812</td>\n",
+       "      <td>2018-12-01</td>\n",
        "      <td>delete</td>\n",
        "      <td>5</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>21</th>\n",
-       "      <td>201812</td>\n",
+       "      <td>2018-12-01</td>\n",
        "      <td>edit</td>\n",
        "      <td>189795</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>22</th>\n",
-       "      <td>201812</td>\n",
+       "      <td>2018-12-01</td>\n",
        "      <td>move</td>\n",
        "      <td>959</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>23</th>\n",
-       "      <td>201812</td>\n",
+       "      <td>2018-12-01</td>\n",
        "      <td>upload</td>\n",
        "      <td>21</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>24</th>\n",
-       "      <td>201811</td>\n",
+       "      <td>2018-11-01</td>\n",
        "      <td>autocreateaccount</td>\n",
        "      <td>486</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>25</th>\n",
-       "      <td>201811</td>\n",
+       "      <td>2018-11-01</td>\n",
        "      <td>createaccount</td>\n",
        "      <td>35421</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>26</th>\n",
-       "      <td>201811</td>\n",
+       "      <td>2018-11-01</td>\n",
        "      <td>delete</td>\n",
        "      <td>2</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>27</th>\n",
-       "      <td>201811</td>\n",
+       "      <td>2018-11-01</td>\n",
        "      <td>edit</td>\n",
        "      <td>216220</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>28</th>\n",
-       "      <td>201811</td>\n",
+       "      <td>2018-11-01</td>\n",
        "      <td>move</td>\n",
        "      <td>1048</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>29</th>\n",
-       "      <td>201811</td>\n",
+       "      <td>2018-11-01</td>\n",
        "      <td>upload</td>\n",
        "      <td>56</td>\n",
        "    </tr>\n",
@@ -1974,181 +2186,181 @@
        "    </tr>\n",
        "    <tr>\n",
        "      <th>535</th>\n",
-       "      <td>200911</td>\n",
+       "      <td>2009-11-01</td>\n",
        "      <td>move</td>\n",
        "      <td>128</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>536</th>\n",
-       "      <td>200910</td>\n",
+       "      <td>2009-10-01</td>\n",
        "      <td>createaccount</td>\n",
        "      <td>145</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>537</th>\n",
-       "      <td>200910</td>\n",
+       "      <td>2009-10-01</td>\n",
        "      <td>edit</td>\n",
        "      <td>226571</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>538</th>\n",
-       "      <td>200910</td>\n",
+       "      <td>2009-10-01</td>\n",
        "      <td>move</td>\n",
        "      <td>149</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>539</th>\n",
-       "      <td>200909</td>\n",
+       "      <td>2009-09-01</td>\n",
        "      <td>createaccount</td>\n",
        "      <td>35</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>540</th>\n",
-       "      <td>200909</td>\n",
+       "      <td>2009-09-01</td>\n",
        "      <td>edit</td>\n",
        "      <td>213070</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>541</th>\n",
-       "      <td>200909</td>\n",
+       "      <td>2009-09-01</td>\n",
        "      <td>move</td>\n",
        "      <td>103</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>542</th>\n",
-       "      <td>200908</td>\n",
+       "      <td>2009-08-01</td>\n",
        "      <td>createaccount</td>\n",
        "      <td>95</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>543</th>\n",
-       "      <td>200908</td>\n",
+       "      <td>2009-08-01</td>\n",
        "      <td>delete</td>\n",
        "      <td>2</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>544</th>\n",
-       "      <td>200908</td>\n",
+       "      <td>2009-08-01</td>\n",
        "      <td>edit</td>\n",
        "      <td>162038</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>545</th>\n",
-       "      <td>200908</td>\n",
+       "      <td>2009-08-01</td>\n",
        "      <td>move</td>\n",
        "      <td>146</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>546</th>\n",
-       "      <td>200907</td>\n",
+       "      <td>2009-07-01</td>\n",
        "      <td>createaccount</td>\n",
        "      <td>124</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>547</th>\n",
-       "      <td>200907</td>\n",
+       "      <td>2009-07-01</td>\n",
        "      <td>delete</td>\n",
        "      <td>1</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>548</th>\n",
-       "      <td>200907</td>\n",
+       "      <td>2009-07-01</td>\n",
        "      <td>edit</td>\n",
        "      <td>160740</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>549</th>\n",
-       "      <td>200907</td>\n",
+       "      <td>2009-07-01</td>\n",
        "      <td>move</td>\n",
        "      <td>128</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>550</th>\n",
-       "      <td>200906</td>\n",
+       "      <td>2009-06-01</td>\n",
        "      <td>createaccount</td>\n",
        "      <td>141</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>551</th>\n",
-       "      <td>200906</td>\n",
+       "      <td>2009-06-01</td>\n",
        "      <td>edit</td>\n",
        "      <td>178879</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>552</th>\n",
-       "      <td>200906</td>\n",
+       "      <td>2009-06-01</td>\n",
        "      <td>move</td>\n",
        "      <td>156</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>553</th>\n",
-       "      <td>200905</td>\n",
+       "      <td>2009-05-01</td>\n",
        "      <td>createaccount</td>\n",
        "      <td>156</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>554</th>\n",
-       "      <td>200905</td>\n",
+       "      <td>2009-05-01</td>\n",
        "      <td>delete</td>\n",
        "      <td>2</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>555</th>\n",
-       "      <td>200905</td>\n",
+       "      <td>2009-05-01</td>\n",
        "      <td>edit</td>\n",
        "      <td>211506</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>556</th>\n",
-       "      <td>200905</td>\n",
+       "      <td>2009-05-01</td>\n",
        "      <td>move</td>\n",
        "      <td>215</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>557</th>\n",
-       "      <td>200904</td>\n",
+       "      <td>2009-04-01</td>\n",
        "      <td>createaccount</td>\n",
        "      <td>24</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>558</th>\n",
-       "      <td>200904</td>\n",
+       "      <td>2009-04-01</td>\n",
        "      <td>delete</td>\n",
        "      <td>7</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>559</th>\n",
-       "      <td>200904</td>\n",
+       "      <td>2009-04-01</td>\n",
        "      <td>edit</td>\n",
        "      <td>178865</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>560</th>\n",
-       "      <td>200904</td>\n",
+       "      <td>2009-04-01</td>\n",
        "      <td>move</td>\n",
        "      <td>256</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>561</th>\n",
-       "      <td>200903</td>\n",
+       "      <td>2009-03-01</td>\n",
        "      <td>createaccount</td>\n",
        "      <td>418</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>562</th>\n",
-       "      <td>200903</td>\n",
+       "      <td>2009-03-01</td>\n",
        "      <td>delete</td>\n",
        "      <td>3</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>563</th>\n",
-       "      <td>200903</td>\n",
+       "      <td>2009-03-01</td>\n",
        "      <td>edit</td>\n",
        "      <td>98346</td>\n",
        "    </tr>\n",
        "    <tr>\n",
        "      <th>564</th>\n",
-       "      <td>200903</td>\n",
+       "      <td>2009-03-01</td>\n",
        "      <td>move</td>\n",
        "      <td>241</td>\n",
        "    </tr>\n",
@@ -2158,73 +2370,73 @@
        "</div>"
       ],
       "text/plain": [
-       "     LogMonth      EditorActions    Freq\n",
-       "0      201903  autocreateaccount      47\n",
-       "1      201903      createaccount    4780\n",
-       "2      201903             delete       5\n",
-       "3      201903               edit   37950\n",
-       "4      201903               move      84\n",
-       "5      201903             upload       3\n",
-       "6      201902  autocreateaccount     454\n",
-       "7      201902      createaccount   25204\n",
-       "8      201902             delete       5\n",
-       "9      201902               edit  210488\n",
-       "10     201902               move     445\n",
-       "11     201902             upload      10\n",
-       "12     201901  autocreateaccount     281\n",
-       "13     201901      createaccount   27924\n",
-       "14     201901             delete      21\n",
-       "15     201901               edit  223870\n",
-       "16     201901               move     568\n",
-       "17     201901             upload       4\n",
-       "18     201812  autocreateaccount     102\n",
-       "19     201812      createaccount   35405\n",
-       "20     201812             delete       5\n",
-       "21     201812               edit  189795\n",
-       "22     201812               move     959\n",
-       "23     201812             upload      21\n",
-       "24     201811  autocreateaccount     486\n",
-       "25     201811      createaccount   35421\n",
-       "26     201811             delete       2\n",
-       "27     201811               edit  216220\n",
-       "28     201811               move    1048\n",
-       "29     201811             upload      56\n",
-       "..        ...                ...     ...\n",
-       "535    200911               move     128\n",
-       "536    200910      createaccount     145\n",
-       "537    200910               edit  226571\n",
-       "538    200910               move     149\n",
-       "539    200909      createaccount      35\n",
-       "540    200909               edit  213070\n",
-       "541    200909               move     103\n",
-       "542    200908      createaccount      95\n",
-       "543    200908             delete       2\n",
-       "544    200908               edit  162038\n",
-       "545    200908               move     146\n",
-       "546    200907      createaccount     124\n",
-       "547    200907             delete       1\n",
-       "548    200907               edit  160740\n",
-       "549    200907               move     128\n",
-       "550    200906      createaccount     141\n",
-       "551    200906               edit  178879\n",
-       "552    200906               move     156\n",
-       "553    200905      createaccount     156\n",
-       "554    200905             delete       2\n",
-       "555    200905               edit  211506\n",
-       "556    200905               move     215\n",
-       "557    200904      createaccount      24\n",
-       "558    200904             delete       7\n",
-       "559    200904               edit  178865\n",
-       "560    200904               move     256\n",
-       "561    200903      createaccount     418\n",
-       "562    200903             delete       3\n",
-       "563    200903               edit   98346\n",
-       "564    200903               move     241\n",
+       "      LogMonth      EditorActions    Freq\n",
+       "0   2019-03-01  autocreateaccount      47\n",
+       "1   2019-03-01      createaccount    4780\n",
+       "2   2019-03-01             delete       5\n",
+       "3   2019-03-01               edit   37950\n",
+       "4   2019-03-01               move      84\n",
+       "5   2019-03-01             upload       3\n",
+       "6   2019-02-01  autocreateaccount     454\n",
+       "7   2019-02-01      createaccount   25204\n",
+       "8   2019-02-01             delete       5\n",
+       "9   2019-02-01               edit  210488\n",
+       "10  2019-02-01               move     445\n",
+       "11  2019-02-01             upload      10\n",
+       "12  2019-01-01  autocreateaccount     281\n",
+       "13  2019-01-01      createaccount   27924\n",
+       "14  2019-01-01             delete      21\n",
+       "15  2019-01-01               edit  223870\n",
+       "16  2019-01-01               move     568\n",
+       "17  2019-01-01             upload       4\n",
+       "18  2018-12-01  autocreateaccount     102\n",
+       "19  2018-12-01      createaccount   35405\n",
+       "20  2018-12-01             delete       5\n",
+       "21  2018-12-01               edit  189795\n",
+       "22  2018-12-01               move     959\n",
+       "23  2018-12-01             upload      21\n",
+       "24  2018-11-01  autocreateaccount     486\n",
+       "25  2018-11-01      createaccount   35421\n",
+       "26  2018-11-01             delete       2\n",
+       "27  2018-11-01               edit  216220\n",
+       "28  2018-11-01               move    1048\n",
+       "29  2018-11-01             upload      56\n",
+       "..         ...                ...     ...\n",
+       "535 2009-11-01               move     128\n",
+       "536 2009-10-01      createaccount     145\n",
+       "537 2009-10-01               edit  226571\n",
+       "538 2009-10-01               move     149\n",
+       "539 2009-09-01      createaccount      35\n",
+       "540 2009-09-01               edit  213070\n",
+       "541 2009-09-01               move     103\n",
+       "542 2009-08-01      createaccount      95\n",
+       "543 2009-08-01             delete       2\n",
+       "544 2009-08-01               edit  162038\n",
+       "545 2009-08-01               move     146\n",
+       "546 2009-07-01      createaccount     124\n",
+       "547 2009-07-01             delete       1\n",
+       "548 2009-07-01               edit  160740\n",
+       "549 2009-07-01               move     128\n",
+       "550 2009-06-01      createaccount     141\n",
+       "551 2009-06-01               edit  178879\n",
+       "552 2009-06-01               move     156\n",
+       "553 2009-05-01      createaccount     156\n",
+       "554 2009-05-01             delete       2\n",
+       "555 2009-05-01               edit  211506\n",
+       "556 2009-05-01               move     215\n",
+       "557 2009-04-01      createaccount      24\n",
+       "558 2009-04-01             delete       7\n",
+       "559 2009-04-01               edit  178865\n",
+       "560 2009-04-01               move     256\n",
+       "561 2009-03-01      createaccount     418\n",
+       "562 2009-03-01             delete       3\n",
+       "563 2009-03-01               edit   98346\n",
+       "564 2009-03-01               move     241\n",
        "\n",
        "[565 rows x 3 columns]"
       ]
      },
-     "execution_count": 2,
+     "execution_count": 23,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -2232,6 +2444,7 @@
    "source": [
     "# Which editors' actions triggered a filter\n",
     "df_ed_actions = pd.read_csv(\"quarry-34050-which-actions-triggered-an-abuse-filter-en-wiki-run346498.csv\", sep=',')\n",
+    "df_ed_actions['LogMonth'] = pd.to_datetime(df_ed_actions['LogMonth'], format=\"%Y%m\")\n",
     "df_ed_actions"
    ]
   },