Skip to content

Instantly share code, notes, and snippets.

@maglietti
Created June 15, 2022 17:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maglietti/4fdbc681d703490811a8988e16b08b3f to your computer and use it in GitHub Desktop.
Save maglietti/4fdbc681d703490811a8988e16b08b3f to your computer and use it in GitHub Desktop.
Vector dummy-log analysis
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 108,
"metadata": {},
"outputs": [],
"source": [
"import requests\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"\n",
"sns.set()\n",
"sns.set(rc = {'figure.figsize':(15,8)})"
]
},
{
"cell_type": "code",
"execution_count": 109,
"metadata": {},
"outputs": [],
"source": [
"def send_request():\n",
" # Count nodes by appname\n",
" # POST http://0.0.0.0:8080/api/v1/query/cypher\n",
"\n",
" try:\n",
" response = requests.post(\n",
" url=\"http://0.0.0.0:8080/api/v1/query/cypher\",\n",
" headers={\n",
" \"Content-Type\": \"text/plain\",\n",
" },\n",
" data=\"MATCH (n) WHERE n.appname IS NOT NULL RETURN distinct n.appname, n.hostname, n.severity\"\n",
" )\n",
" print('Response HTTP Status Code: {status_code}'.format(\n",
" status_code=response.status_code))\n",
" return response.json()\n",
" except requests.exceptions.RequestException:\n",
" print('HTTP Request failed')"
]
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Response HTTP Status Code: 200\n"
]
}
],
"source": [
"nodes = send_request()\n",
"headers = nodes[\"columns\"]\n",
"data = nodes[\"results\"]"
]
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>n.appname</th>\n",
" <th>n.hostname</th>\n",
" <th>n.severity</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1455</th>\n",
" <td>Karimmove</td>\n",
" <td>make.org</td>\n",
" <td>emerg</td>\n",
" </tr>\n",
" <tr>\n",
" <th>913</th>\n",
" <td>Karimmove</td>\n",
" <td>for.de</td>\n",
" <td>notice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1864</th>\n",
" <td>Karimmove</td>\n",
" <td>up.org</td>\n",
" <td>alert</td>\n",
" </tr>\n",
" <tr>\n",
" <th>914</th>\n",
" <td>Karimmove</td>\n",
" <td>for.us</td>\n",
" <td>warning</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1648</th>\n",
" <td>Karimmove</td>\n",
" <td>we.com</td>\n",
" <td>debug</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1178</th>\n",
" <td>shaneIxD</td>\n",
" <td>some.net</td>\n",
" <td>warning</td>\n",
" </tr>\n",
" <tr>\n",
" <th>666</th>\n",
" <td>shaneIxD</td>\n",
" <td>random.us</td>\n",
" <td>notice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>667</th>\n",
" <td>shaneIxD</td>\n",
" <td>up.net</td>\n",
" <td>notice</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1743</th>\n",
" <td>shaneIxD</td>\n",
" <td>we.com</td>\n",
" <td>emerg</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1452</th>\n",
" <td>shaneIxD</td>\n",
" <td>we.org</td>\n",
" <td>emerg</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1960 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" n.appname n.hostname n.severity\n",
"1455 Karimmove make.org emerg\n",
"913 Karimmove for.de notice\n",
"1864 Karimmove up.org alert\n",
"914 Karimmove for.us warning\n",
"1648 Karimmove we.com debug\n",
"... ... ... ...\n",
"1178 shaneIxD some.net warning\n",
"666 shaneIxD random.us notice\n",
"667 shaneIxD up.net notice\n",
"1743 shaneIxD we.com emerg\n",
"1452 shaneIxD we.org emerg\n",
"\n",
"[1960 rows x 3 columns]"
]
},
"execution_count": 111,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# What is the general shape of the data?\n",
"df = pd.DataFrame(data)\n",
"df.set_axis(headers, axis=1, inplace=True)\n",
"df.sort_values(by=['n.appname'])"
]
},
{
"cell_type": "code",
"execution_count": 112,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ahmadajmi 280\n",
"meln1ks 280\n",
"Karimmove 280\n",
"shaneIxD 280\n",
"benefritz 280\n",
"devankoshal 280\n",
"jesseddy 280\n",
"Name: n.appname, dtype: int64\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA28AAAIICAYAAAD5SdaqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAA0qklEQVR4nO3deZiXdb3/8dcXic3JJQ7DUQ96UjFMLy0rxZ8LiQoasqhcRiqW5laKys8FF1wRE+XkFllmWq4pLghKYC5Z5k5HScVO/RQ5iIfVEJR95vdHp7kizAVm5ub+zuNxXV4Xc88X5j19Ypjn3J/7viv19fX1AQAAYL3WqugBAAAA+GjiDQAAoATEGwAAQAmINwAAgBIQbwAAACUg3gAAAEpAvAEAAJRA66IH+EfvvPNe6upaxqPnOnasyfz5i4segyZgbaub9a1u1rd6WdvqZn2rV0ta21atKtl00w3/6fvXu3irq6tvMfGWpEV9ri2Nta1u1re6Wd/qZW2rm/WtXtb2r2ybBAAAKAHxBgAAUALiDQAAoATEGwAAQAmINwAAgBIQbwAAACUg3gAAAEpAvAEAAJSAeAMAACgB8QYAAFAC4g0AAKAExBsAAEAJiDcAAIASEG8AAAAlIN4AAABKQLwBAACUgHgDAAAogUp9fX190UP8vfnzF6eurnlH+vRG7dOubetm/ZhFWrpsZRa9u6ToMZpNS1pfa1vdrG/1srbVzfpWt5a0vta26bVqVUnHjjX/9P0t53/9D9Gubev0Pf2BosdoNhP+o38WFT1EM2pJ62ttq5v1rV7WtrpZ3+rWktbX2hbPtkkAAIASEG8AAAAlIN4AAABKQLwBAACUgHgDAAAoAfEGAABQAuINAACgBMQbAABACYg3AACAEhBvAAAAJSDeAAAASkC8AQAAlIB4AwAAKAHxBgAAUALiDQAAoATEGwAAQAmINwAAgBIQbwAAACUg3gAAAEpAvAEAAJSAeAMAACgB8QYAAFAC4g0AAKAExBsAAEAJiDcAAIASEG8AAAAlIN4AAABKQLwBAACUgHgDAAAoAfEGAABQAuINAACgBMQbAABACYg3AACAEhBvAAAAJSDeAAAASkC8AQAAlIB4AwAAKAHxBgAAUALiDQAAoARaf5wX/eAHP8gvf/nLJEmPHj1y1lln5ZxzzsmUKVPSvn37JMnJJ5+c/fffP0899VS+973vZdmyZTnwwAMzdOjQppseAACghfjIeHvqqafy5JNP5v7770+lUsmxxx6bX/3qV3n55Zdz2223pba2tuG1S5cuzbnnnptbb701m222WU444YQ88cQT6dGjR5N+EgAAANXuI7dNdurUKWeffXbatGmTT33qU9lmm20ya9aszJo1K+eff3769u2ba6+9NnV1dZk6dWq22mqrdOnSJa1bt07fvn0zadKk5vg8AAAAqtpHnnnr2rVrw6+nT5+eiRMn5o477shzzz2XSy65JB06dMgJJ5yQe+65Jx06dEinTp0aXl9bW5vZs2c3zeQAAAAtyMe65i1J/vSnP+WEE07IsGHDsvXWW2fMmDEN7xs8eHDGjRuXAw44YI3fV6lUPtFAHTvWfKLXs3Y6dfp00SPQRKxtdbO+1cvaVjfrW92sb/Va39b2Y8XblClTcsopp+Tcc89Nnz598sc//jHTp09P7969kyT19fVp3bp1OnfunHnz5jX8vjlz5qx2TdzHMX/+4tTV1X+i37Ou1rdFaQ5z5y4qeoRm09LW19pWN+tbvaxtdbO+1a2lrK+1bXqtWlU+9GTWR17z9vbbb+ekk07K6NGj06dPnyR/jbXLLrssCxcuzIoVK3LXXXdl//33z84775w33ngjb775ZlatWpUHH3wwe++9d+N9NgAAAC3UR555++lPf5ply5bl8ssvbzg2aNCgHH/88fnGN76RlStXplevXjnooIOSJJdffnmGDBmSZcuWpUePHh+4lRIAAIBP5iPjbfjw4Rk+fPgHvu+II45Y49juu++e8ePHr/tkAAAANPjIbZMAAAAUT7wBAACUgHgDAAAoAfEGAABQAuINAACgBMQbAABACYg3AACAEhBvAAAAJSDeAAAASkC8AQAAlIB4AwAAKAHxBgAAUALiDQAAoATEGwAAQAmINwAAgBIQbwAAACUg3gAAAEpAvAEAAJSAeAMAACgB8QYAAFAC4g0AAKAExBsAAEAJiDcAAIASEG8AAAAlIN4AAABKQLwBAACUgHgDAAAoAfEGAABQAuINAACgBMQbAABACYg3AACAEhBvAAAAJSDeAAAASkC8AQAAlIB4AwAAKAHxBgAAUALiDQAAoATEGwAAQAmINwAAgBIQbwAAACUg3gAAAEpAvAEAAJSAeAMAACgB8QYAAFAC4g0AAKAExBsAAEAJiDcAAIASEG8AAAAlIN4AAABKQLwBAACUgHgDAAAoAfEGAABQAuINAACgBMQbAABACYg3AACAEhBvAAAAJSDeAAAASkC8AQAAlIB4AwAAKAHxBgAAUALiDQAAoATEGwAAQAmINwAAgBIQbwAAACUg3gAAAErgY8XbD37wg/Tp0yd9+vTJFVdckSR56qmn0rdv3/Tq1StXXXVVw2unTZuWQw89NL179855552XlStXNs3kAAAALchHxttTTz2VJ598Mvfff3/GjRuXV155JQ8++GDOPffc/PCHP8zEiRPz8ssv54knnkiSnHnmmTn//PMzefLk1NfX5+67727yTwIAAKDafWS8derUKWeffXbatGmTT33qU9lmm20yffr0bLXVVunSpUtat26dvn37ZtKkSXnrrbeydOnSfOELX0iSHHLIIZk0aVJTfw4AAABV7yPjrWvXrg0xNn369EycODGVSiWdOnVqeE1tbW1mz56dOXPmrHa8U6dOmT17duNPDQAA0MK0/rgv/NOf/pQTTjghw4YNS+vWrfPGG2+s9v5KpZL6+vo1fl+lUvlEA3XsWPOJXs/a6dTp00WPQBOxttXN+lYva1vdrG91s77Va31b248Vb1OmTMkpp5ySc889N3369Mlzzz2XefPmNbx/zpw5qa2tTefOnVc7Pnfu3NTW1n6igebPX5y6ujUjsCmtb4vSHObOXVT0CM2mpa2vta1u1rd6WdvqZn2rW0tZX2vb9Fq1qnzoyayP3Db59ttv56STTsro0aPTp0+fJMnOO++cN954I2+++WZWrVqVBx98MHvvvXe22GKLtG3bNlOmTEmSjBs3LnvvvXcjfSoAAAAt10eeefvpT3+aZcuW5fLLL284NmjQoFx++eUZMmRIli1blh49euSAAw5IkowePTrDhw/Pe++9l89//vM56qijmm56AACAFuIj42348OEZPnz4B75v/Pjxaxzr1q1b7rnnnnWfDAAAgAYf6yHdAAAAFEu8AQAAlIB4AwAAKAHxBgAAUALiDQAAoATEGwAAQAmINwAAgBIQbwAAACUg3gAAAEpAvAEAAJSAeAMAACgB8QYAAFAC4g0AAKAExBsAAEAJiDcAAIASEG8AAAAlIN4AAABKQLwBAACUgHgDAAAoAfEGAABQAuINAACgBMQbAABACYg3AACAEhBvAAAAJSDeAAAASkC8AQAAlIB4AwAAKAHxBgAAUALiDQAAoATEGwAAQAmINwAAgBIQbwAAACUg3gAAAEpAvAEAAJSAeAMAACgB8QYAAFAC4g0AAKAExBsAAEAJiDcAAIASEG8AAAAlIN4AAABKQLwBAACUgHgDAAAoAfEGAABQAuINAACgBMQbAABACYg3AACAEhBvAAAAJSDeAAAASkC8AQAAlIB4AwAAKAHxBgAAUALiDQAAoATEGwAAQAmINwAAgBIQbwAAACUg3gAAAEpAvAEAAJSAeAMAACgB8QYAAFAC4g0AAKAExBsAAEAJiDcAAIASEG8AAAAlIN4AAABK4GPH2+LFi3PQQQdl5syZSZJzzjknvXr1Sv/+/dO/f//86le/SpI89dRT6du3b3r16pWrrrqqaaYGAABoYVp/nBe99NJLGT58eKZPn95w7OWXX85tt92W2trahmNLly7Nueeem1tvvTWbbbZZTjjhhDzxxBPp0aNHow8OAADQknysM2933313LrzwwoZQe//99zNr1qycf/756du3b6699trU1dVl6tSp2WqrrdKlS5e0bt06ffv2zaRJk5r0EwAAAGgJPtaZt5EjR6729vz589O9e/dccskl6dChQ0444YTcc8896dChQzp16tTwutra2syePbtxJwYAAGiBPla8/aMuXbpkzJgxDW8PHjw448aNywEHHLDGayuVyif6szt2rFmbkfiEOnX6dNEj0ESsbXWzvtXL2lY361vdrG/1Wt/Wdq3i7Y9//GOmT5+e3r17J0nq6+vTunXrdO7cOfPmzWt43Zw5c1a7Ju7jmD9/cerq6tdmrLW2vi1Kc5g7d1HRIzSblra+1ra6Wd/qZW2rm/Wtbi1lfa1t02vVqvKhJ7PW6lEB9fX1ueyyy7Jw4cKsWLEid911V/bff//svPPOeeONN/Lmm29m1apVefDBB7P33nuv9fAAAAD81VqdeevWrVuOP/74fOMb38jKlSvTq1evHHTQQUmSyy+/PEOGDMmyZcvSo0ePD9xKCQAAwCfzieLtsccea/j1EUcckSOOOGKN1+y+++4ZP378uk8GAABAg7XaNgkAAEDzEm8AAAAlIN4AAABKQLwBAACUgHgDAAAoAfEGAABQAuINAACgBMQbAABACYg3AACAEhBvAAAAJSDeAAAASkC8AQAAlIB4AwAAKAHxBgAAUALiDQAAoATEGwAAQAmINwAAgBIQbwAAACUg3gAAAEpAvAEAAJSAeAMAACgB8QYAAFAC4g0AAKAExBsAAEAJiDcAAIASEG8AAAAlIN4AAABKQLwBAACUgHgDAAAoAfEGAABQAuINAACgBMQbAABACYg3AACAEhBvAAAAJSDeAAAASkC8AQAAlIB4AwAAKAHxBgAAUALiDQAAoATEGwAAQAmINwAAgBIQbwAAACUg3gAAAEpAvAEAAJSAeAMAACgB8QYAAFAC4g0AAKAExBsAAEAJiDcAAIASEG8AAAAlIN4AAABKQLwBAACUgHgDAAAoAfEGAABQAuINAACgBMQbAABACYg3AACAEhBvAAAAJSDeAAAASkC8AQAAlIB4AwAAKAHxBgAAUALiDQAAoATEGwAAQAmINwAAgBL4WPG2ePHiHHTQQZk5c2aS5Kmnnkrfvn3Tq1evXHXVVQ2vmzZtWg499ND07t075513XlauXNk0UwMAALQwHxlvL730Ur7xjW9k+vTpSZKlS5fm3HPPzQ9/+MNMnDgxL7/8cp544okkyZlnnpnzzz8/kydPTn19fe6+++4mHR4AAKCl+Mh4u/vuu3PhhRemtrY2STJ16tRstdVW6dKlS1q3bp2+fftm0qRJeeutt7J06dJ84QtfSJIccsghmTRpUpMODwAA0FK0/qgXjBw5crW358yZk06dOjW8XVtbm9mzZ69xvFOnTpk9e3YjjgoAANByfWS8/aP6+vo1jlUqlX96/JPq2LHmE/8ePrlOnT5d9Ag0EWtb3axv9bK21c36VjfrW73Wt7X9xPHWuXPnzJs3r+HtOXPmpLa2do3jc+fObdhq+UnMn784dXVrhmBTWt8WpTnMnbuo6BGaTUtbX2tb3axv9bK21c36VreWsr7Wtum1alX50JNZn/hRATvvvHPeeOONvPnmm1m1alUefPDB7L333tliiy3Stm3bTJkyJUkybty47L333ms/OQAAAA0+8Zm3tm3b5vLLL8+QIUOybNmy9OjRIwcccECSZPTo0Rk+fHjee++9fP7zn89RRx3V6AMDAAC0RB873h577LGGX+++++4ZP378Gq/p1q1b7rnnnsaZDAAAgAafeNskAAAAzU+8AQAAlIB4AwAAKAHxBgAAUALiDQAAoATEGwAAQAmINwAAgBIQbwAAACUg3gAAAEpAvAEAAJSAeAMAACgB8QYAAFAC4g0AAKAExBsAAEAJiDcAAIASEG8AAAAlIN4AAABKQLwBAACUgHgDAAAoAfEGAABQAuINAACgBMQbAABACYg3AACAEhBvAAAAJSDeAAAASkC8AQAAlIB4AwAAKAHxBgAAUALiDQAAoATEGwAAQAmINwAAgBIQbwAAACUg3gAAAEpAvAEAAJSAeAMAACgB8QYAAFAC4g0AAKAExBsAAEAJiDcAAIASEG8AAAAlIN4AAABKQLwBAACUgHgDAAAoAfEGAABQAuINAACgBMQbAABACYg3AACAEhBvAAAAJSDeAAAASkC8AQAAlIB4AwAAKAHxBgAAUALiDQAAoATEGwAAQAmINwAAgBIQbwAAACUg3gAAAEpAvAEAAJSAeAMAACgB8QYAAFAC4g0AAKAExBsAAEAJiDcAAIASEG8AAAAlIN4AAABKoPW6/Oajjjoq8+fPT+vWf/1jLrnkksyYMSPXX399VqxYkW9961s54ogjGmVQAACAlmyt462+vj6vv/56fv3rXzfE2+zZszN06NDcd999adOmTQYNGpTddtst2267baMNDAAA0BKtdby9/vrrqVQqOe644zJ//vwcdthh2XDDDdO9e/dssskmSZLevXtn0qRJOfnkkxtrXgAAgBZpra95e/fdd7P77rtnzJgx+dnPfpZf/OIXmTVrVjp16tTwmtra2syePbtRBgUAAGjJ1vrM2xe/+MV88YtfTJJ06NAhAwcOzPe+972ceOKJq72uUql8oj+3Y8eatR2JT6BTp08XPQJNxNpWN+tbvaxtdbO+1c36Vq/1bW3XOt5eeOGFrFixIrvvvnuSv14Dt8UWW2TevHkNr5kzZ05qa2s/0Z87f/7i1NXVr+1Ya2V9W5TmMHfuoqJHaDYtbX2tbXWzvtXL2lY361vdWsr6Wtum16pV5UNPZq31tslFixbliiuuyLJly7J48eLcf//9ufLKK/P0009nwYIFWbJkSR5++OHsvffea/shAAAA+F9rfeZtn332yUsvvZQBAwakrq4uhx9+eL70pS9l6NChOeqoo7JixYoMHDgwO+20U2POCwAA0CKt03PeTjvttJx22mmrHevbt2/69u27Ln8sAAAA/2Ctt00CAADQfMQbAABACYg3AACAEhBvAAAAJSDeAAAASkC8AQAAlIB4AwAAKAHxBgAAUALiDQAAoATEGwAAQAmINwAAgBIQbwAAACUg3gAAAEpAvAEAAJSAeAMAACgB8QYAAFAC4g0AAKAExBsAAEAJiDcAAIASEG8AAAAlIN4AAABKQLwBAACUgHgDAAAoAfEGAABQAuINAACgBMQbAABACYg3AACAEhBvAAAAJSDeAAAASkC8AQAAlIB4AwAAKAHxBgAAUALiDQAAoATEGwAAQAmINwAAgBIQbwAAACUg3gAAAEpAvAEAAJSAeAMAACgB8QYAAFAC4g0AAKAExBsAAEAJiDcAAIASEG8AAAAlIN4AAABKQLwBAACUgHgDAAAoAfEGAABQAuINAACgBMQbAABACYg3AACAEhBvAAAAJSDeAAAASkC8AQAAlIB4AwAAKAHxBgAAUALiDQAAoATEGwAAQAmINwAAgBIQbwAAACUg3gAAAEpAvAEAAJSAeAMAACgB8QYAAFAC4g0AAKAEmiTeJkyYkK997WvZf//9c/vttzfFhwAAAGhRWjf2Hzh79uxcddVVue+++9KmTZsMGjQou+22W7bddtvG/lAAAAAtRqOfeXvqqafSvXv3bLLJJunQoUN69+6dSZMmNfaHAQAAaFEa/czbnDlz0qlTp4a3a2trM3Xq1I/9+1u1qjT2SB9L7abtC/m4RSnqf+eitKT1tbbVzfpWL2tb3axvdWtJ62tti/14lfr6+vrG/IA/+tGPsmTJkgwdOjRJMnbs2PzhD3/IJZdc0pgfBgAAoEVp9G2TnTt3zrx58xrenjNnTmpraxv7wwAAALQojR5v/+f//J88/fTTWbBgQZYsWZKHH344e++9d2N/GAAAgBal0a9569y5c4YOHZqjjjoqK1asyMCBA7PTTjs19ocBAABoURr9mjcAAAAaX5M8pBsAAIDGJd4AAABKQLwBAACUgHgDAAAoAfEGAABQAuINAABYbyxfvrzoEdZb4g3gY5o5c2Z+/etfZ9WqVfnv//7voscBPoaXX355jWO//OUvC5gE+Lh69eqViy++OFOnTi16lPWO57w1g8cffzz77LNPxo0b94HvHzBgQLPOQ9NYvnx5Xn/99XTr1i0TJkzIq6++mqOPPjq1tbVFj0YjmDhxYq6//vosWbIkd911V/r165ezzjor/fv3L3o01sH/+3//L/fcc09ef/31tG3bNttuu20GDhyYzTffvOjRaCTdunXLkUcemXPOOScbbLBBkuTggw/O/fffX/BkrK1u3bqlUqkkSf7x29hKpZJp06YVMRaNaMmSJZk8eXLGjRuX+fPnZ8CAAenXr186depU9GiFc+atGfzhD39Ikjz77LMf+B/V4cwzz8zkyZPz0ksv5brrrktNTU3OPvvsoseikfzkJz/JnXfemZqamnTs2DH3339/brjhhqLHYh088cQTOfzww7N06dL06NEju+++exYsWJCBAwfmueeeK3o8GknXrl1TqVTyzW9+MwsWLEiy5jf8lMtrr72WadOmZdq0aXnttddW+0+4VYf27dtnwIAB+dnPfpZTTjklt9xyS3r16pXvfve7efPNN4ser1Ctix6gJTjllFOSJN/73vcKnoSmNHPmzFxzzTW54oorMnDgwBx//PE59NBDix6LRtKqVavU1NQ0vF1bW5tWrfz8q8yuvfba/PSnP82OO+642vFDDjkko0aNyu23317QZDSm1q1b57zzzss999yTQYMG5fvf/35at/btTzWYP39+JkyYkPfeey/19fWpq6vLzJkzc8UVVxQ9GuvozTffzPjx4/Pggw9m8803zxlnnJFevXrlmWeeyXHHHZeHH3646BEL46tXM5o0aVJuuOGGLFy4cLXjjz76aEET0ZhWrVqVBQsW5NFHH811112XuXPnZunSpUWPRSPp2rVrbrvttqxcuTLTpk3LHXfckW7duhU9Futg+fLla4Rbkuy00055//33C5iIpvC3s2wDBw7M1ltvnVNPPdX6VomTTz45W265ZV588cXst99++d3vfufrcpU4+uijc8ghh+Smm27KFlts0XC8R48e+d3vflfgZMUTb81o1KhRueKKK1xLUaW+/e1v57DDDkvPnj2z3XbbpXfv3jn11FOLHotGcsEFF+T6669P27Ztc+6556Z79+4ZNmxY0WOxDpx9aRm+853vNPx6l112yW233Zbrr7++wIloLO+8807uvPPOjBo1Kr169cqJJ56Yb33rW0WPRSN49NFHG65r/EfnnntuM0+zfvEvVzPacsst86UvfclWqyq15557pm/fvg1vT5w4Mb/5zW8KnIjGdPfdd+eb3/xmTj/99KJHoZG89957eeGFFz7w+idnZqrHgw8+mN69eze8vdlmm7X4a2aqxcYbb5wk+exnP5vXXnstO++8c1auXFnwVKyLv78ZTfLXH7K1atUqy5cvT01NTZ5//vkCp1s/iLdmdMwxx+Soo47KV77ylYY7XiV/Pe1P+R199NG56aab8pnPfCZz587NiBEj8uc//zn77LNP0aPRCGbPnp3DDjssn/3sZ9OvX7/06tUr7du3L3os1kHnzp1zzTXXfOD73CW2/E466aS89tprmTNnTvbdd9+G46tWrcpmm21W4GQ0lu7du+eUU07JsGHDcswxx+SVV15J27Ztix6LdfDaa68lSS688MLssssu6devXyqVSiZPnpzf/va3BU+3fvCogGY0YMCAbL/99qvt3U3EW7WYPHlyrr/++gwYMCA33nhjvvGNb+T444/Ppz71qaJHoxG98MILmThxYn73u99lp512ypVXXln0SKyjurq6NXZELF68eLUb1FA+ixcvzl/+8peMHDkyw4cPbzjeunXrdOzY0bbZKjFjxoxsueWWeeWVV/L888/na1/7mh++VIEPepxH//7988ADDxQ00frDV65mtHLlSnecrGK9e/dOTU1NhgwZkh/+8Ifp3r170SPRyOrr67NixYqsWLEilUolbdq0KXokGsHhhx+e0aNH59/+7d+SJL/5zW9y0UUX5bHHHit4MtbFm2++mR122CFHH310Zs2atdr7ZsyYka985SsFTUZjWbFiRd544438/ve/T5Jssskmeeqppzw/twq0b98+9957bw488MDU1dXlgQceyCabbFL0WOsFZ96a0ejRo/Ov//qv2WuvvVY7G+MGJuXWs2fP1fZnL1iwIBtssEHDXnx3E60OI0aMyCOPPJLtt98+/fr1y7777mt7TpWYMGFCrrrqqhx77LF55ZVXMm3atFx00UXZaaedih6NdTB8+PBceumlGTx48Brvq1QqueWWWwqYisb03e9+N3Pnzs0222yz2r/DflBefm+99VZGjBiRZ599NpVKJXvssUeGDx+ezp07Fz1a4cRbM+rZs+caxyqVim/uS+6tt9760Pf/4zZZyunWW29Nnz598pnPfKboUWgCDz30UM4444x07Ngxv/jFLxrOwlF+d9xxRw4//PCix6AJHHDAAZk0aVLRY0Czsm2yGdmCU53EWctw6KGHZsyYMXn66aezatWq7LbbbjnttNPSoUOHokdjHZ111ll55ZVX8otf/CKvv/56Bg8enGOOOeYDz9hQPuKtem255ZaZNWuWHUxV5B93M/0jJzyceWsW1113XYYMGZJzzjnnA9/foUOHHHjggfnyl7/czJPRGP7xWop/5B+V6nDOOeekffv2Oeyww5L89dEBixYtcsOSKnD55Zdn6NChDdtgZ8+enQsuuCA//vGPC56MxnDsscdm+fLl2XnnnVfb6uxmYeU1ePDgVCqVLFiwIG+//Xa6deuWDTbYIPX19bbEltxbb72V+vr6jBkzJl26dMkhhxySDTbYIBMmTMjMmTNzwQUXFD1i4cRbM3jsscfSs2fPNe6a8zeLFi3KjTfe6JlgJdW3b99Mnz49tbW1azwvyrbY6tGvX7+MHz9+tWNf+9rXMnHixIImAj7M+++/nw4dOuQHP/jBB75fvJXXc88996Hv33XXXZtpEprKIYcckvvuu+8jj7VEtk02g79d63bwwQfnL3/5S5YsWZL6+vqsWrUqM2fOzMEHH5y6urqCp2Rt3XnnnTn88MNz4YUX5ktf+lLR49BE6uvr8+6772ajjTZKkrz77rurPa+R8vln23P+9tN7P3gpt8GDB+fee+/NvHnzctFFFxU9Do3ob3G2fPnyvP766+nWrVsmTJiQV199NUcffXTB09FYnnnmmYY7dz/xxBP+zf1fzrw1o+9///u5/fbbs3Llymy66aaZPXt2dtxxx4wdO7bo0VhHU6dOzdixYzNixIiiR6GJ3Hvvvfnxj3+cnj17pr6+Po8//niOP/74DBw4sOjRWEtuNlTdDjzwwOywww757W9/+4E3DHNHwvI79dRTs/XWW2efffbJGWeckf79+2fKlCm56aabih6NdfTqq69m2LBhmTNnTpK/fj2+4oorsu222xY8WfHEWzPq2bNnxo8fn5EjR+Y73/lOZs2alZtvvtl1FVAS//Vf/5Xnn38+dXV12XXXXfO5z32u6JFoJDNnzsyf//zn7LXXXpk1a1a6dOlS9Eiso7fffjvPPvtsrrnmmpxyyilrvP/ggw8uYCoa06GHHpp77703V1xxRTbZZJMcf/zxDceoDu+8804qlYpnvP0d2yabUW1tbWpqatK1a9e89tpr6dWrl5sdVJk//elPWbhw4WrXvnkQbHVYvnx5Zs6cmQ033DBJMm3atEybNs3DYKvAxIkTc/3112fJkiW56667MmjQoJx11lnp379/0aOxDjbbbLMMGDAg3bp1S7du3bJw4cKG529SHVatWpUFCxbk0UcfzXXXXZe5c+dm6dKlRY9FI3jrrbcyfPjwvPXWW7n99ttz1FFH5bLLLvMYl4i3ZlVTU5Nx48Zlhx12yG233Zba2tq8++67RY9FI7n44ovz+OOPr/YTe3e9qh7HHXdc6uvr19hKJ97K7yc/+UnuvPPOHHnkkenYsWPuv//+HH300eKtStTX1+eAAw7I0qVLc9ddd+XII4/M1VdfnR122KHo0VhH3/72t3PYYYelZ8+e2W677dK7d++ceuqpRY9FI7jgggvy7W9/O6NHj86//Mu/5KCDDsqwYcNy++23Fz1a4cRbMxo5cmQeeuihDBgwII8//nguuOCCnHbaaUWPRSP53e9+l0mTJqVdu3ZFj0ITeOedd9a42yTVoVWrVqmpqWl4u7a2Nq1atSpwIhrTpZdemjFjxuT0009P586dc9FFF+XCCy/MPffcU/RorKO+ffumd+/emT59eqZNm5aHHnoorVv71rYavPPOO9lzzz0zevToVCqVHHbYYcLtf/l/eDPq3LlzjjnmmCTJ2WefXfA0NLYuXbqs8agAqkf37t3z1FNPpXv37r6xrzJdu3bNbbfdlpUrV2batGm544470q1bt6LHopEsWbIk22yzTcPbe+yxR0aNGlXgRDSWP/zhDzn11FOzySabpK6uLvPmzcuYMWOy8847Fz0a66hdu3b5n//5n4Y7Ar/wwgtp06ZNwVOtH8RbM+jWrdtqt6Nu3bp1WrVqleXLl6empibPP/98gdPRWDbeeOP06dMnX/ziF1f7AuOOZtVh8803zzHHHNPwd/lvt5OfNm1awZOxri644IJcf/31adu2bc4999x07949w4YNK3osGskmm2yS1157reHv7vjx4137ViVGjhyZq666qiHWXnzxxYwYMcJZ1Spwzjnn5IQTTsiMGTPSv3//LFy4MNdcc03RY60X3G2yGV144YXZZZdd0q9fv1QqlUyePDm//e1vc+mllxY9Go3gnz2E3R3NqkPPnj1z2223ZfPNNy96FOATmDFjRoYNG5Y//OEPadeuXbbaaqtceeWV2XrrrYsejXXUr1+/Nbaz9+3bNxMmTChoIhrTihUrMn369KxatSrbbLNNPvWpTxU90nrBmbdmNHXq1Fx88cUNb/fu3Ts//OEPC5yIxjBr1qwkyW677VbwJDSl2tpatyquUvfdd19GjRrVcAMpZ1Wry5Zbbpk777wz77//furq6la7vpFy23jjjfPII49kv/32S5I88sgjvk5XialTp2bKlCk54ogjcuKJJ+bVV1/NxRdfnN69exc9WuHEWzNq37597r333hx44IGpq6vLAw884ItMFTjyyCNTqVQ+8Hq3SqWSRx99tICpaGydO3fOQQcdlF122WW1n/7ZFlt+Y8aMya233prtttuu6FFoAq+++mp+9KMfrfEYF3cCLr9LLrkkZ511Vs4777wkf7323COYqsOll16aM844I5MnT067du1y3333ZciQIeIt4q1ZXXnllRkxYkQuvfTSVCqV7LHHHrniiiuKHot19NhjjxU9As3gq1/9ar761a8WPQZNoHPnzsKtig0bNixf//rX07Vr19WuP6f8Nt9884wdO3a1s6rOmFeHurq67Lrrrjn99NPTq1evbL755lm1alXRY60XxFsz2mKLLfKjH/1otWMeJlk9Fi5cmCuvvDIzZszINddckyuuuCLnnHNONtpoo6JHoxEcfPDBWbx4sWczVqEddtghp5xySvbYY4+0bdu24bhn+FWHdu3a5cgjjyx6DJrAcccdl5/85Cfp0KFDli5dmlGjRmXChAl58sknix6NddS+ffvcdNNNefbZZ3PBBRfk5z//eTbccMOix1oviLdmNHny5IwZMybvv/9+6uvrU1dXlyVLluSZZ54pejQawfnnn5899tgjU6dOzYYbbpja2tqcccYZueGGG4oejUYwatSo3H333Q1bnf92XZRtseW3ePHibLjhhnnxxRdXOy7eqsOee+6ZW2+9NXvuuedqce7mQ+W377775thjj81RRx2VUaNGZbfddsuDDz5Y9Fg0gtGjR2fs2LG59tprs/HGG2fOnDn5j//4j6LHWi+It2Z05ZVX5tJLL83NN9+cE088MU8++WTeeeedoseikcycOTNf//rXc+edd6ZNmzYZOnRo+vXrV/RYNJJHH300v/nNb/zkrwp90HWLdkVUjwceeCBJcvPNNzcc84OX6vDNb34zn/70pzN06NBcd9112WeffYoeiUay6aabZr/99ku3bt0yYcKE1NXVecbq/xJvzWijjTZK9+7d8/vf/z6LFi3KkCFDcsghhxQ9Fo1kgw02yKJFixquqZg+fbovNFXkc5/7XJYvXy7eqtAH7YpYunRpnn766aJHoxG4Lrn6DB48eLVnbtbU1GTkyJENge5mNOV35plnZuutt86yZcty3XXXpX///jn77LNz0003FT1a4cRbM2rXrl3eeOONbLPNNnnuuefSvXv3LFq0qOixaCRDhgzJ4MGD8/bbb+e73/1uXnzxxVx22WVFj0Uj6d+/f3r16pXtttsuG2ywQcNx3ySUn10R1c31yNVnyJAhRY9AE5s5c2bD39eBAwfm+OOPz6GHHlr0WOsF8daMTjvttFx99dW58sorc8MNN+Suu+7KwIEDix6LRrLjjjtmv/32y+OPP5633347+++/f15++WV3KKwSl112Wc477zzXyVQhuyKqm+uRq8+uu+7a8Os//elPazwGgvJbtWpVFixYkEcffTTXXXdd5s6dazv7/xJvzWjXXXdt+IJz7733ZuHChdl4440LnorGctxxx+Vzn/ucPfdV6tOf/rQbWFQpuyKqm+uRq9cll1ySxx57LF26dGk4VqlU7IioAt/+9rdz2GGHpWfPntluu+3Su3fvnHrqqUWPtV4Qb83ohRdeyM9//vMsXLhwteO+yFQP2ySr15e+9KUMGTIke++992oP6RZ05WdXRHVzPXL1evLJJzNp0qS0a9eu6FFoZH379k3fvn0bvmd+6KGH0rq1bEnEW7M6++yzc/LJJ9t2VaX222+/jB07Nt27d1/tmijrXR2WLFmSmpqa/P73v1/tuHgrP7siqpvrkatXly5dbJesUq+99lpOO+20LF26NHfddVeOPPLIXH311dlhhx2KHq1w4q0Zde7c2Td6VWzRokW54YYbsummmzYcczvq6vFBt5OnOkydOjU33XRT3nnnndW+EbQrojrsvvvu2W+//XLLLbfkhRdeyLe+9a306NGj6LFoBBtvvHH69OmTL37xi2nTpk3DcV+vy2/EiBEZM2ZMTj/99HTu3DkXXXRRLrzwwtxzzz1Fj1Y48daMBg8enDPOOCPdu3df7dSvoKsODz/8cJ5++mnbN6rMCSeckB//+Mfp2bNnw7arvyfOy2/YsGE58sgjs+22237gGlNul1xySd57771cfvnlqa+vz7hx4xpuQES57bXXXtlrr72KHoMmsGTJkmyzzTYNb++xxx4ZNWpUgROtP8RbM7rjjjuSJFOmTFntuHirDl26dMnChQvFW5UZMWJEkuTqq69Ox44dC56GptCuXbscccQRRY9BE3nxxRczYcKEhrf32Wef9O/fv8CJaCwHH3xw/vKXv2TJkiWpr6/PqlWrMnPmzKLHohFssskmee211xp+oDZ+/Hjb2f+XeGtGc+fOzS9/+cuix6CJVCqV9OnTJ127dl3thha2XpVbbW1tkr+enfH3t7rMmjUrSbL99tvnZz/7Wfbdd1/Xq1ahzp0757//+78b7kg4Z86cdOrUqeCpaAzf//73c/vtt2flypXZdNNNM3v27Oy4444ZO3Zs0aOxji666KIMGzYsf/7zn/PlL385W221VUaPHl30WOuFSr0rPZvN+eefn549e2avvfZyx5wq9Nxzz33g8b9/Hg3lNXTo0PTo0SM77bTTamdXfYNfXn/bCvv3/wz+/bZJW2LLbfDgwalUKnnnnXcyc+bMfOUrX8kGG2yQKVOmpGvXrrn99tuLHpF11LNnz4wfPz4jR47Md77zncyaNSs333xzfvzjHxc9Gmvp/PPPz4gRIzJ48OAkyfvvv5+6urrU1NSkUqmkQ4cO6d+/fw488MCCJy2OeGtGe+65Z+bNm7fasUqlkmnTphU0EfBx9ezZc41jbkhTHV566aVMmTIlRx55ZE488cS88sorufjii3PAAQcUPRrr4J/9QO1v/GCt/AYNGpRf/OIXuemmm/Jv//Zv6dWrVw499NDce++9RY/GWnr55Zez4447/tO/v++++24uuuiiPPnkk8082frD6Z9m1JL/jwZl99hjjxU9Ak1k5MiROfPMM/Pwww+nXbt2GTduXE4++WTxVnLirPrV1NRk3Lhx2WGHHXLbbbeltrY27777btFjsQ523HHHJB/+93fFihXNNc56Sbw1o4ULF+ahhx5a43bUJ598coFTAR/H66+/njvuuCPvv/9+6uvrU1dXl5kzZ9p6VQXq6uryla98Jaeffnp69eqVzTbbLKtWrSp6LOAjjBw5Mg899FAGDBiQxx9/PBdccEFOO+20oseiibXkLZNJ0qroAVqSk046Kc8880zq6uqKHgX4hIYOHZqNNtoo06ZNy/bbb5/58+ena9euRY9FI2jfvn1uuummPPvss9lnn33y85//PBtuuGHRYwEf4Ze//GX69euXJDn77LMzfvz49OnTp+CpoGk589aMFi5cmNtuu63oMYC1UFdXl1NOOSUrV67M5z//+QwaNCiDBg0qeiwawejRozN27Nhce+212XjjjTNnzpz8x3/8R9FjAR9h9uzZOeyww/LZz342/fr1S69evdK+ffuix4Im5cxbM+ratWtefvnloscA1kL79u2zfPny/Pu//3teeeWVtGnTJsuWLSt6LBpB586dc/LJJ2eXXXZJkpx55pn513/914KnAj7KsGHD8thjj+U73/lOXnrppQwYMCBnnnlm0WNBk3LmrRn87XbUS5cuzaRJk1JbW7vas4TcrQ7Wf/369cuJJ56Y0aNH5+tf/3p++9vf+gYfoGD19fVZsWJFVqxYkUqlkjZt2hQ9EjQpjwpoBm+99VaSZOnSpfnNb36T9957L1tssUVWrVqVZ599NldeeWXBEwL/zKhRozJs2LAkyeLFi1NTU5P/+Z//yQMPPJB77rknv/rVrwqeEKBlGjFiRB555JFsv/326devX/bdd9+0bdu26LGgSTnz1gy22GKLJMnxxx+fJUuWZMaMGfnyl7+c559/Pl/4wheKHQ74UP/5n/+Zq666KkOHDk1NTU2S5IknnsgNN9yQo48+uuDpAFquf//3f8/999+fz3zmM0WPAs3GNW/N6I033sgtt9yS/fffP8cee2zGjh2bOXPmFD0W8CFuvPHGPPfcc7nuuuvy7rvvZsiQIbn55ptz8803e8wHQIG+/vWv5+67786wYcOyePHi/OAHP8jy5cuLHgualHhrRh07dkylUslnP/vZ/PGPf0znzp19kYH1XE1NTW688cY888wz2X///fMv//IvGTduXHbaaaeiRwNo0S655JK8//77eeWVV7LBBhtkxowZOe+884oeC5qUeGtGXbt2zYgRI7LbbrvlZz/7WW644YYW/5R4KIMNN9wwN954Yz73uc+lc+fOadeuXdEjAbR4r7zySv7v//2/ad26ddq3b59Ro0Zl2rRpRY8FTco1b83ooosuyn/+539m2223zZAhQ/L00097lhCs5wYPHpxKpZIkWbJkSa6++ur8+te/brij2S233FLkeAAtVqVSyfLlyxu+Rr/zzjsNv4Zq5W6TAB/iueee+9D377rrrs00CQB/b9y4cRk7dmzefPPNHHjggXnkkUdy0kknZeDAgUWPBk1GvAEAUBrjxo1r+PX777+f+vr6rFq1Kkmy0UYbZcCAAcUMBs3AtkkAAErj2WefTZLMmDEjM2bMSI8ePdKqVas8+eST2XbbbcUbVU28AQBQGt/73veS/PWa5AceeKDhOW8LFy7MSSedVORo0OTcbRIAgNKZM2dONtlkk4a327dvn7lz5xY3EDQDZ94AACidr371qzn66KPTq1ev1NXVZdKkSTnwwAOLHgualBuWAABQSpMnT85zzz2XSqWS3XffPfvuu2/RI0GTEm8AAAAl4Jo3AACAEhBvAAAAJSDeAAAASkC8AQAAlIB4AwAAKIH/D3bGVYIls3RcAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 1080x576 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"some.net 56\n",
"for.us 56\n",
"we.org 56\n",
"for.org 56\n",
"names.com 56\n",
"up.com 56\n",
"make.org 56\n",
"random.com 56\n",
"some.us 56\n",
"some.org 56\n",
"make.net 56\n",
"we.net 56\n",
"random.us 56\n",
"up.org 56\n",
"some.com 56\n",
"make.de 56\n",
"we.com 56\n",
"up.us 56\n",
"make.us 56\n",
"names.de 56\n",
"some.de 56\n",
"names.net 56\n",
"for.de 56\n",
"names.us 56\n",
"up.net 56\n",
"for.net 56\n",
"we.de 56\n",
"up.de 56\n",
"for.com 56\n",
"random.org 56\n",
"random.de 56\n",
"names.org 56\n",
"random.net 56\n",
"we.us 56\n",
"make.com 56\n",
"Name: n.hostname, dtype: int64\n"
]
},
{
"data": {
"image/png": "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1ubNmzOE1pCQEGMhpHXr1rrzzjuzvVM6l4ULF2rLli2qWrWqJOnbb79VeHi4jh07pujoaLVs2TJb9Xv06KH27duraNGiBkab2dixYzV8+HDNnz9f9913n/r166fmzZsbC2nvvvuuNm3apAoVKsjzPK1atUq33nqrjhw5ok6dOqlmzZqXVXf58uVatWqVEhISNHr06MD7YWFhaty4cbbGfOTIEf344486evSoVq5cGXg/V65cxk6A/bp27aonnnhCkhQbG6t//vOf6t+/v7Er2rly5VJSUlIgeMyfP19Hjx5VaGio+vfvn62TgoULF2rp0qW6/vrrjYz1bH379tWjjz6qDRs26Prrr1d4eLi6deum8ePHG6nfunVreZ6Xad9gKqRt3LhRn3/+ucaOHasGDRqoQ4cOgf2oCVOmTNGHH36o2bNn68knn1Tv3r3VqFEjYz+jtrf/wIEDVbBgQW3ZskW5cuXSrl271Lt3b40YMSJbdW3uG/zeeustffrpp2rdurXCw8M1adIkvfzyy0ZDmq3vb/HixbV58+ZM7+fJk0dDhw7NVu3IyEj98ssv+uGHH/TQQw8F3s+VK5fatWuXrdpn6tevn55//nm9+eabKly4sGrWrKnu3bsb22++/vrrevfdd9W1a1cVKVJEAwYMUP/+/fXZZ58Zqd++fXvVqFFDd911l5F6Z6tYsaJuu+02NWjQQJI0e/Zsbdy4UVWqVFHv3r01YcKEbNX/z3/+oylTpqhZs2YqVKiQZs2apVatWhkLabbOq3r37q3du3dr06ZNGe5Mp6WlKSUlxcTQtWjRIk2dOlUTJkwIhNd69eoZqe1n7bzZc9D7779vtX69evU8z/O8YcOGBT7L/54JDRo08E6ePBl4ffLkSa9Ro0ae53ledHR0tuvXrVs303v+8deuXTvb9atXr+6lpaVlu865mNzWWWncuLGXlJQUeJ2SkuI1bdrUS01NNbL9n3322WzXOB//9nnppZe82NhYz/M8r2bNmsbqt2jRwvvtt98Cr//44w/vueee81JSUrw6depku/6sWbOyXeNcli9fbq22X/369T3P87yBAwd6H3/8sed5Wf/OXa6za/l8vsBnZvfns3379l5iYmK2apyPf+xn7mdM/E7ZqJWVWrVqeWlpaV7t2rW9devWeceOHfOefvppY/X92+e5557zvv32W8/zPK9G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3r0VHh5upL53Rk+Uv37jxo2NBdnPP/9c48ePD+y8/SHKZF/Lzz//rNWrV8vn8+nhhx82fgVoz5492rZtmx5//HHt3bvXWD+UJL333nv69ttvMxyMKleubKwn0PYqWcFu3bp1evnll5U/f355nqekpCSNGjXKWE/pgQMHdN1118nn8+ngwYMqXry4kbo54cSJE3rnnXcy7BteeuklY30/ycnJGjNmjFauXKmwsDBVrFhRL774otFnNq5du1Y///yz6tevr/Xr1xt5tMKVlJCQYGzfb3PfYPu4Lp1eaXf79u0qU6aM5syZoy1btqhVq1bGtg+uLP+CZp7nqUKFCkYX7LJ9XmWb7fMq26uWz5kzR9u2bVPbtm311VdfGQ9/tr6/ToY02/71r3+pbdu21p73IP1vmWGfz6eyZcuqUKFCxj/D5jK9W7Zs0d13362UlBRt2rRJFSpUMFb76NGjiomJUdOmTbVv3z5NnTpVbdq0MXY3QcoYoh566KFMDxbPjp9++knvvfeeRo0apV9++UX9+vXToEGDjIXk+fPna9y4cTp+/LimTZumWrVq6dVXX1Xt2rWN1JcyHowiIiKMXUA4l/379xu9qnemM+9KmbBmzRp9/PHHSkpKyvC+ySvO/scI+Hw+3XHHHcb2Q5988olmzZqlWbNm6bffftO//vUvtWzZUo0bNzZSX7IbQtLT0/Xtt9/qySefVGJiohYtWqT69esbm/L4wgsvqESJEqpTp448z9Pnn38eWIDAhI8//lgLFixQQkKCpk6dqmeffVYNGjQwtgJgToQEmxeIsmJq35ATx/VOnTqpRIkSqly5srp166batWtr7dq1+vDDD618nnT6oq+pu0VnmzZtmtF9g80TYdsXWPbt26dPPvlE3bp10+7du/XOO+/o1VdfNboCo005cdyyeV5l08iRI/XHH39o8+bNmjFjhl588UXdc8896tGjh9HPsXLenO2uthxicsGAhx9+2Lvrrrsy/ClTpoyx+lkx3aR4tqlTpxqrNWLECK9Vq1ae551uBG7WrJk3ZswYY/VfeOEF76233vI8z/NSUlK8t956y2vfvr2x+lkx2dzdsGFDb8mSJYHXy5Yt85o0aWKsfp06dbyUlBSvdu3anued/h7UqFHDWP0rwf//YkPr1q2N1nvyySe9WbNmeStXrszwxyZTi1dERUV5R48eDbw+duyY0cUaJkyY4DVr1syLjIz0EhMTverVq3v//e9/jdXv0aOH9+qrr3qed3rRkFdeecXr27evsfpZLUJicmGS2rVreydPngz8vB85csTookIdO3b03n77bW/dunXeU0895Y0dOzawrzZh3rx5Xs2aNb0nn3zSO3DggPfII494MTExxupnxdS+ISeO6/Xq1fM8z/OGDRvmvf/++xnes6V3795G6qSlpWV6b/To0UZqe97p84auXbt61atX91JSUrxmzZp5Q4YMMVa/TZs23tChQ734+HgvLi7Oe/31172XX37ZWP1mzZp5U6ZM8Tzv9AIl06ZNM/q7lRWT51VX4rhlelGks5naPrVr1/Z8Pl9gX5Oammp8sTdb581BE9L27dt3pYeQLSZPJG3vbKOiojJ8RmpqqtETvaxWoLO9ypHJkJDVtjBZ33/QP7Om7VXR/gyrJpry7LPP5vhnmjoRi4yMzLDqmenfXdshJKuxmhz/Sy+95K1evTrwOi4uznvppZeM1a9bt67neV6GkwGT47cdEv6MF4hMql27tnfw4EEvMjLS++mnn7yEhISg2T629/G2T4RtX2DJ6rzE9jbzh0ITrsRxy+bFV88zt33q1q3r+Xy+wPfz6NGjxlcNtnXe7OTCIZLdKRe2n/eQFZNNig0aNMg0975jx47G6qelpenEiROBh4mnpqYaqy2dblb+6aefArfKf/nlF6MLq2TFZHN3wYIFNWXKFNWqVUvS6emJJqezli5dWpMmTVJaWpri4uL06aefWl88weTCJJLdKXG255Y3b95cr7zyiiIiIjL8XNpqYJbMLV5RtWpV/fOf/9TTTz8tSfr666+NrtAXGhqaYSpZnjx5jDaP+3y+DD1QBw8eNPb8PknatWuXmjdvrttvv11hYWHavn27brrppsBDirO7QMNDDz2kYcOG6fjx41qwYIGmTZtmdFGk9PR0JSYmauHChXrnnXe0f/9+nThxwlj90NDQDNPnw8PDjW5/m9M1c+K4/vzzz6tRo0aqUqWK7rzzTlWrVk2dOnUyVt/mlL5ChQppzZo11qaD+n9O/FOTT506ZfRnp3jx4lqzZk3guWjx8fFG+22vvfZaLVmyJNCHtmLFCqMtGFlp0qSJsVpX4rhle1EkU9unevXq6ty5s5KSkjRhwgR98cUXRheFkeydNzvZk2a7J8f2w4gluyeStufeT5gwQVOmTAmsXrh06VI1bdrU2ANTly9frm7dugUesnjo0CGNGDHC2EMpJbshYe/evXrttde0atUq5c6dW+XLl1ffvn118803G6l/7NgxjRs3TsuXL5fP51NERITatWtntPfQ5kUQm305OTG3vEWLFpIyL2ZgqoHZdm9FbGysVq9erbCwMD344IOBVWBNGDp0qEJCQrRo0SJ169ZN06ZNU/HixdWnTx8j9efMmaOhQ4eqXLly8jxPGzZsUO/evY09EPdcC0v4F6XK7gIWPp9P06dPz/C7+8wzzxgLsnPmzNHo0aNVpUoV9erVKxASatSoYaR+jx49dO+992rq1KkaMWKEPv30U504ccLYsdFmT1dOHNf9kpKSdNNNNyktLc3oBUabPZMRERGZHvVhcmXc8ePHa/Pmzdq4caNatGihL774QtWqVTO2IFV0dLS2bduW6QLLtddea+QCS3x8vF555ZXAIy1uueUWDR8+3NiiYLZ7xmwft2z3w9rcPm3atFHlypW1adMm3XjjjXr44YeN93naOm92MqTVrVtXEydOVLNmzRQTE6OEhAS1atVK8+bNM1K/Vq1amj17dob3atSoofnz5xupb/tE0vbOVjq9XO+aNWsUFham8uXL6+677zZWWzr9C//zzz8rLCxMJUqUMBo2bTfvBzvbF0Hq1Kmj6dOnq1GjRoqJidHRo0fVsGFDI79fderU0axZs1S3bl3FxMQoLS1NtWrVMva7K0lPP/20vvzyS2P1zmZ78QqbbIcQ6XQD/7p16xQWFqa///3vRhfFOHMFsdTUVK1du1bly5c3diK/YcMG3XfffYHXx48f1+jRo403qNsKCbYvENWvX1+ff/65hg8frvz586tNmzaB97LL9nFdOn0i37lzZ504cULTpk1Ts2bN9PbbbxtbuKhmzZqaO3fuBd9zke0TYdsXWPwOHTqka665xviCbFWrVlX79u1VtGjRDO+bWrXc9nHL9qI5NrfP+vXrtXTpUi1dulRpaWmqWLGiqlSpYmxFZT8r583ZnjBpge2enJo1a3pJSUmB10lJScb7Nmw3KeY02w2iphZO8Dz7fTNZMdkA/NFHH3kPPvigV6ZMGa9MmTLGG+Bt953Y7MvJibnlffr08RYtWpSht8sk270VZzPZV7F+/foMr48dO2Z0cYCs2Fx06dChQ17Lli2N1YuMjPR+/PFHz/M8b8mSJd4TTzzh9ezZ01j9uLg4r1q1al6lSpW8P/74w6tatar1RalMstnTZfu47nmn+362bdsW2LctW7bMq1+/vrH6Nnsmjx075g0fPtyrW7euV6tWLe+NN97IsMhQdq1bt84bM2aM16BBA69OnTreW2+95a1bt85Y/R49egT+dO3a1atcubL3yiuvGKufFZMLstnuGbN93LLdD5sTPXUHDx70Jk+e7D3++OPePffcY/3zTJw3O9mTZqsnZ/78+apRo4Zq1aoVeBix53lavHixWrdubWDkp9mem30leupsPzDV5EMpbffNZMXk8vKffPKJYmJiMl1RMsV234nNvpycmFu+ePFizZgxI8N7Ju9U2+6tOJvJfsNu3bpp2LBhuv/++7V06VINGDBAERERxupnxeYDca+77rpzPrvrcrz33nvq0KGDihUrpt27d2vYsGFGp1oPGjRI7777rrp27aoiRYpowIAB6t+/vz777DMj9SdMmKB///vfSklJkWT+YfE2erpy6rgunT72lixZMvD60Ucf1bBhw4zVt9kzOXDgQOXNm1dvvPGGpNPTQfv372/sLnLZsmVVtmxZNW3aVLGxsXrvvff0wQcfaNOmTUbqnz1t7/Dhw+rSpYuR2pL9h6Hb7hmzfdyy3Q9rc/u89tprWrt2rXLlyqUHH3xQ/fv3N3YH83xMnDc7GdL69euncePGKU+ePOrVq5ciIiLUvXv3bNcdM2aMIiMjNX/+fL377rtatWqVPM/T2LFjjT6M2PaJpO2dbVZsN4iaWjhBst+8nxWTDcAlS5a0+mwW2wuTvPrqq5o+fbruuusuxcTEqFKlSnrmmWeM1F6zZo0qV66s66+/Xn/88Yc6duxofG75smXLjNY7m+3FK2w/CN1mCMmKyYDWvHnzwMUzz/O0Z88eIw+s3bt3r6TTF4QGDBigzp07q0+fPrr11lu1d+9eYxdcbIcE2xeIoqOjFR0dHeg7mTdvXrana+bUcV2S8ufPr/j4+MDP0OzZs3XTTTcZq//cc89l+b6JE8rNmzdnmA7ar18/Y72MUs6fCJu+wGJ7QbZPP/1U0ul++TOZCmm2j1u2F82xuX2Sk5PleZ7uuOMOlSxZUiVKlNANN9yQ7boXYuK82cmQdt1116lr167q2rWr0boPPPCA/v73v8vzPNWqVUveGe14Jq842D6RtL2ztd0ganvhBJshQbLfANy8eXNFR0erbNmyGa7smWoAtnURxG/Tpk1q0qRJILgeP35cI0aMMNKX065dOy1dulRbt25VWlqa8uTJo4IFCxqdW277TrXNE7Gz+w2bNGlipN8wp0KIZHfRpQ4dOgT+HhISogIFCqhUqVLZrtusWTOFhIQEjim5c+fW8OHDA5+T3eDtZzsk2L5AZKOnK6eO65I0YMAAde/eXVu3blX58uVVvHhxoxdHV61aFfj7mT2TdevWzXZtz/OUnJysG2+8UdLp47DJGSa2T4RtXWDxs7365f79+632jNk+btm4wHImm9vH3+/9yy+/aMWKFWrbtq2OHTum7777zujn2FiwzsmFQ2xPuXjxxRc1btw4I7WyYrtJMTo6WpMnT86ws23atKnmzJljpL7tBlHbCyfYbt633QBcrVo1RUdHZ2qENnGgzgnVqlXLckqc/86vCYmJiYEpNYmJicam1Ej2V4mzuXiFrUWX/Hf5sjpcmAwhObF6ZzDbtWuXunfvro0bN+raa68NhIQSJUoYqb906VINHjzY2gWipk2bauDAgeratatiYmL0/fffa9SoUUama9o+rp/p2LFj8vl8xheXOJt/St9HH3102TX800H/85//aMaMGZmmgzZs2NDgiP93Ijxx4kSjJ8JnBliTF1j8bC/I1rdvX1WpUkWPP/64lUcO2T5u2V40x+b22b59u1asWKEVK1YoLi5OZcuWVaVKlYwtliZZXLAu211tFjzxxBPeb7/9dqWHkW2mmxTnzZvneZ7njR8/3nvqqae8IUOGeG+88Yb31FNPedOnT892fT/bDaK2F06w3bxvu8HV9oOrbS9Msn37di8qKspr27atFxUV5a1atcpY7QEDBnjR0dFenTp1vMGDB3sLFizwkpOTjdX3vKwfampz4RmTi1dciQehmxTsiy798ssv3qBBg7yePXt6PXr08F599VUr+4ujR496KSkpxutGRkZ677zzjjdz5swMf0w5e1Ehz8v6981Vq1ev9tq3b+81b948wx9bTp486T311FPZqlGtWjUvNTXVq1Onjvfzzz97kyZN8iZOnOj99NNPhkZ52i+//OJNmjTJa9eunVelShWvS5cuXkxMjNHPCGaPPvqod9ddd2X4Y/K4a/u4ZXvRHJvbp2bNmt6bb77prV692ktPTzdS82y2Fqxzcrqj7SkXttma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",
"text/plain": [
"<Figure size 1080x576 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"crit 245\n",
"err 245\n",
"debug 245\n",
"info 245\n",
"emerg 245\n",
"notice 245\n",
"warning 245\n",
"alert 245\n",
"Name: n.severity, dtype: int64\n"
]
},
{
"data": {
"image/png": "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75yddtopBx10UBYvXpwDDzwwPXv2TH19fZqamtLc3JylS5dm7dq1Ofzww5Mkp512Wpqbm3f09wAAANDh1b/ZHQ455JC2jxcvXpzZs2dn+PDhaWhoaDve2NiYZcuWpaWlZYvjDQ0NWbZs2TYN1L377tt0f/5fQ8Me1R6BN2A/tc+Oapv91D47qn12VNvsp/ZVe0dvGm+bPf744xk1alS+8IUvpL6+PosWLdriz+vq6lKpVF719+rq6rZpoBUrXkxr66s/T3uq9j/6jrJ8+QvVHqHddMQd2U/ts6Pa1pH2k9hRreuI+0nsqNZ1pP0kdrQ9unSpe8Mns7bqgiXz5s3L2Wefnc9+9rM59dRTs99+++W5555r+/OWlpY0Nja+6vjy5cvT2Nj4FsYHAAAg2Yp4e+aZZ3L++edn0qRJGTRoUJKkd+/eWbRoUZ588sls2rQpd9xxR/r27Zv9998/u+yyS+bNm5ckmTFjRvr27btjvwMAAIBO4E1Pm/z+97+fdevWZeLEiW3Hhg0blokTJ+bCCy/MunXr0q9fvwwcODBJMmnSpIwdOzarV6/Oe9/73owYMWLHTQ8AANBJvGm8jR07NmPHjn3NP5s5c+arjvXq1StTp05965MBAADQZqte8wYAAEB1iTcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcAAIACiDcA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qPZoxM+hWjZ79uysX78+1157bT796U+3Hd+wYUO+973v5e67767idG+P+moP0FEMGDAgv//97/Pzn/88Rx99dNvxrl275vzzz6/iZLzS3nvvnYEDB+Z973tfdtlll7bjV111VRWn4pWOOuqoDBw4MB/5yEeSJPfee2+am5szfPjwfPnLX84tt9xS5Qm54YYbctttt2WfffZJkpx33nkZMWKEeKsRXbt2zcqVKzNkyJAkL/+ys3r16nTp0iWXX365/7+rAV/84hfzyU9+Mv/2b/+WhoaGDB48OF/4whdy8803V3s04udQLXvxxRfzq1/9KqtXr86DDz7Ydrxr16655JJLqjjZ20e8tZPDDjsshx12WPr375/dd9+92uPwOk499dRqj8CbePzxxzNp0qS22/369cs3vvGNvPe97826deuqOBmbtba2toVbkuy7776eza4hjzzySKZNm9Z2+/jjj89HP/rRfOMb38jJJ59cxcnY7A9/+EM++MEPZtKkSamrq8vQoUOFWw3xc6h2DR06NEOHDs3kyZMzfPjwao9TFeKtnZx66qmZPn16jjzyyC1+ialUKqmrq/OakBoxa9asXH/99dUegzew55575pZbbsnJJ5+c1tbWzJo1K3vttVd+//vfp7W1tdrjkeQ973lPJkyY0PZM29SpU9OrV68qT8Vma9asyfLly9PQ0JAkWbFiRdsvnJs2barmaPzJrrvummeffbbt94Vf/vKXTmetIX4O1b5bb72108ab17y1s8cee8wvMTXsrLPOyqRJk9KjR49qj8LrWLZsWSZMmJCf/exn6dq1a/7hH/4ho0ePzp133pkDDzwwffv2rfaIndZLL72Ubt26Ze3atfn3f//3/PznP0+lUskxxxyT888/31kHNWL27Nm56qqrcsQRR6S1tTULFizIZZddlsceeyyrVq3KZZddVu0RO7358+dn3LhxWbJkSd75zndm5cqV+cY3vpHevXtXezTi51AJzjnnnKxfvz69e/fe4mUwF1xwQRWnenuIt3Z24okn5kc/+lG1x+B1DBw4ME8++WS6d+++xX/sP/nJT6o4FZTh9NNPz3/+53/mS1/6Ur70pS9Vexxex2OPPZbGxsbMmzcvXbp0yRFHHJF99903f/zjH7P33ntXezz+ZMOGDVm8eHE2bdqUAw44wIMfsA2uu+661zwu3thmF154Yd7znvekd+/e2XXXXduOH3XUUVWcis2eeuqpzJo1K7/73e9y3nnnZcGCBTnqqKNc4auGHH/88a/5+imBXX0nnnhi3ve+9+X+++/f4qq6m7kQRm3wIGLtmz17dr797W9n1qxZWbJkSYYPH55x48a1XSCD6rr//vvz9a9/PStXrswrf032c6i2vPTSS1myZEkOPfTQrF27Nt26dav2SG8Lr3lrZ3/84x8ze/bsPPjgg1mzZk1aWlry13/91/nBD35Q7dFIcsstt+TZZ5/NI488kh49emT8+PFZuHBhLr300mqPxp9Mnjy57eONGzfm7rvvzvr166s4EZtdf/31efDBBzNv3rwtrqpLbTn44INz3XXXeRCxhn3729/ODTfckCR55zvfmWnTpuUTn/iEeKsRX/nKV3LppZfmkEMOcTGmGjV37tx88YtfzKZNm9penzhp0qR88IMfrPZoO5x4a2f9+/fPtGnTMnny5Dz11FM599xzc9JJJ1V7LP7kgQceyPTp03Pqqadm9913zw033JCTTz5ZvNWQ/ffff4vb55xzTk477bR86lOfqtJEbNajR48MGTIkvXr18treGvbHP/4xDz744BaX0a6rq/MgYg3ZsGFD3vGOd7Td7t69e5wIVTv22WefHHfccdUegzfwta99LT/84Q9z7rnnprGxMTfddFM+85nPiDe23ZQpU3LbbbclSQ444IBMmzYtQ4cOzbBhw6o8GUnSpUuXJGl7JG39+vVtx6gNDz30UNvHlUoljz/+uEsz15jly5dnzJgxWbVqlVOKatArn72mNn3gAx/IZz7zmTQ1NSVJfvSjH+Xwww+v7lC0+cAHPpCrrroq//iP/7jF6+M9e107Wltb266om7x8xkFnId7a2YYNG7LTTju13X7lx1TfwIEDc/HFF2flypW58cYbM3PmzAwePLjaY/EK1157bdvHdXV12WeffTJx4sQqTsSfc0pRbVu6dGnGjh2bpUuX5uabb85nP/vZXHnllV7bW0Muv/zyTJ48Obfeemvq6+tz5JFH5mMf+1i1x+JP5s+fn+Tl90zczLPXteUv//Iv89Of/jR1dXVZtWpVbr755vzVX/1Vtcd6W7hgSTu7+uqr87//+7858cQTkyR33XVX3v/+9+fiiy+u7mC0uf/++zNnzpy0tramT58+To2AbTRs2LDccsst1R6D1/HJT34yH//4xzNp0qRMnz49t912W26//XZvAl0DNr//3tNPP/2af95ZfvmEt2rFihWZMGHCFr/PjR07No2NjdUebYcTbztAc3NzHnroodTX1+eoo47yAmTYBs8++2y+8pWvtP03dOyxx2bMmDHZd999qz0af3L11Vdn48aNTimqUaeddlqmTZuWIUOGZMaMGUmSU045Jbfffnt1ByOjRo3Kd7/73VddVbdSqaSurs6px1U2bty4XHHFFRk+fPhrnlXgmTdqgdMmd4CBAwdm4MCB1R4DijRmzJh85CMfaTtVcurUqRk9enS++93vVnkyNps/f37q6ury6KOPbnHcLza1Ydddd82zzz7b9svnL3/5y+y8885Vnookbf8/Nm3atFe9595TTz1VhYl4pX/6p39K8vLbPlGbXu/thDbrDA+AiDegpjz//PNbvPbj7LPPzvTp06s4EZttflQ6yauujOe1b7Vj9OjRGTVqVJYsWZJTTjklK1euzNe//vVqj0WSZ555JpVKJSNHjsx//Md/tP13tGnTppx77rlpbm6u8oSd29/+7d8mSY4++ug8/vjjr3qfN6pv8wWZ1q5dm/vuuy+rV6/O/vvvn02bNm1xhd2OTLwBNeWwww7Lf/3Xf2XQoEFJkp/+9KdtP1CpLo9Kl+Hv/u7vMnXq1CxevDibNm3Ku9/9bs+81Yhrr702Dz74YFpaWnLWWWe1Ha+vr8+HPvSh6g3GFsaPH5977rknPXv2bDvmgiW1YfPbCY0cOTJr1qzJkiVLcuSRR+ahhx7qNFds9Zo3oCb06tUrdXV1bY9y7rrrrunatWtWr16dvfbaq9M8ogZv1RNPPJEpU6Zk5cqVWxy/6qqrqjQRf+573/teRo4cWe0xeB0DBgzIzJkzt3iTe2pL//79c9ddd2XChAk5/fTTs+++++aiiy7qFBfT8swbUBMee+yxao8AHcIFF1yQk046Ke95z3uqPQqv45//+Z9z9dVXZ+7cudm0aVP69OmTiy66KN26dav2aCTp2bOn0yVrXPfu3VNXV5d3vetdWbhwYYYMGZL169dXe6y3hXgDasr69etz/fXXZ9GiRRk3blxuvPHGjBw50mlfsJX23HPPXHDBBdUegzdwxRVXZLfddsuVV16ZJJkyZUouv/zyXH311VWejCTZa6+9MmjQoBxxxBFb/Ozx7HXtOOSQQ3LFFVfkzDPPzOc+97m0tLRkw4YN1R7rbeG0SaCmjB07Nvvuu2/uueee3Hbbbbn88stTqVT8UgNb6dZbb83TTz+dPn36pL7+/x+j9VYOtePkk0/OzJkztzh20kknZfbs2VWaiFd6vYtknXrqqW/zJLyeTZs25Ve/+lWOPPLI/OQnP8ncuXMzdOjQHHroodUebYfzzBtQU37zm99k+vTpue+++7LbbrvlX//1X9PU1FTtsaAYv/jFL/LrX/86//M//9N2zMUWakulUsmqVauy5557JklWrVqVrl27VnkqNps1a1auv/76ao/BG+jatWuOPPLIJMmHP/zhfPjDH67yRG8f8QbUlLq6uqxfv77t0vN/+MMfXIYetsGCBQty1113VXsM3sDZZ5+dj370oznuuONSqVTy05/+1AVMasi6devyzDPPpEePHtUeBV5FvAE1ZcSIEfn4xz+e5cuXZ8KECfnxj3+c888/v9pjQTEOPfTQPPbYY+nVq1e1R+F1nHzyyVmzZk1WrlyZvfbaK8OHD9/iFFeq6/nnn8/xxx+f7t27Z5dddkmlUkldXV2neANoap/XvAE1YcaMGW0fv/TSS6lUKtm0aVOSly/AMGTIkOoMBoUZMmRIfvvb3+Yd73hHdtppp7bjfvGsHRdddFGefvrpHHTQQVucWeCCGLVh6dKlr3l883uMQTV5mAeoCZvfx23JkiVZsmRJ+vXrly5duuSBBx7IwQcfLN5gK1133XWZNWtWfve73+W8887LggULXKykxixcuDDNzc3VHoPX0dDQkHvvvTerV69O8vLFMZ566qlcdNFFVZ4MxBtQIzY/4jx8+PDcfvvt2XfffZMkK1eudNokbINbbrklzz77bB555JH06NEj48ePz8KFC3PppZdWezT+5KCDDkpLS0saGxurPQqv4YILLsiaNWuyZMmSHHnkkXnooYdy+OGHV3ssSJJ0qfYAAK/U0tKSvffeu+32brvtluXLl1dvICjMAw88kKuvvjq77LJLdt9999xwww257777qj0Wr7B27doMHDgww4YNy4gRI9r+R21YtGhRfvCDH6R///4555xzctttt6WlpaXaY0ESz7wBNeZDH/pQPv7xj2fAgAFpbW1Nc3NzTjzxxGqPBcXo0uXlx2U3v5Zq/fr1bceoDaNGjar2CLyB7t27p66uLu9617uycOHCDBkyJOvXr6/2WJBEvAE1ZvTo0bnzzjvzi1/8InV1dfnEJz7Rqd6/Bd6qgQMH5uKLL87KlStz4403ZubMmRk8eHC1x+IVjj766GqPwBs45JBDcsUVV+TMM8/M5z73ubS0tGTDhg3VHguSuNokAHQ4999/f+bMmZPW1tb06dMnxx13XLVHgmKMHDkyhx9+eE477bQ88sgjmTNnToYOHZpDDz202qOBeAMAgM0efvjh3HfffbnvvvuycePG9O3bN8cff3x69+5d7dFAvAEAwJ97/vnn09zcnO985zt5/vnns2DBgmqPBOINAAA2+/KXv5x58+ala9euOeqoo3LMMcfk6KOPzh577FHt0cBbBQAAwGarVq1KpVLJu971rhx00EF597vfLdyoGZ55AwCAP/P73/8+c+fOzeTJk/PSSy/l/vvvr/ZI4K0CAABgsyeeeCJz587N3Llz8+ijj6Z3797p169ftceCJJ55AwCANk1NTTnuuOPSt2/fvP/97/cm99QU8QYAAFAADyUAAAAUQLwBAAAUQLwBAAAUQLwBAAAUQLwBAAAU4P8ARFtfiIKc0V0AAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 1080x576 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for columnName in df:\n",
" if columnName == 'count(*)': pass\n",
" print(df[columnName].value_counts())\n",
" ax = df[columnName].value_counts().plot(kind='bar')\n",
" plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.8.9 64-bit",
"language": "python",
"name": "python3"
},
"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.8.9"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment