Skip to content

Instantly share code, notes, and snippets.

@orochford
Created December 2, 2020 12:32
Show Gist options
  • Save orochford/a82ae16f42894d6fd7a85c60115d3922 to your computer and use it in GitHub Desktop.
Save orochford/a82ae16f42894d6fd7a85c60115d3922 to your computer and use it in GitHub Desktop.
Getting started with Brim and Pandas
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Using the Brim Python Library and Pandas\n",
"\n",
"This notebook provides instructions on how to use the Brim Python library to connect to and query a Brim instance and store the returned data in a Pandas DataFrame\n",
"\n",
"## Installation\n",
"\n",
"Brim is a Security Analytics solution for threat hunting, incident response and digital network forensics.\n",
"\n",
"### Brim\n",
"\n",
"Brim is available on Github:\n",
"https://github.com/brimsec/brim\n",
"\n",
"### Brim Python Library\n",
"\n",
"To install the current open beta of the Brim Python library, use pip:\n",
"\n",
"pip3 install 'git+https://github.com/brimsec/zq#subdirectory=python/zqd'"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Import Dependencies\n",
"Import the Brim Python library \"zqd\", as well as Pandas and Matplotlib"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import zqd as zqd\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Connect to ZQL and store data in a DataFrame\n",
"\n",
"We define the Brim Workspace to query, as well the as the ZQL query to send.\n",
"We store the returned data in a Pandas DataFrame, flattening any dictionary style data.\n",
"\n",
"Make sure that you started the Brim client and that the ZQD service is running.\n",
"\n",
"Be sure to manually verify your ZQL query in the Brim client - the more heavy lifting is done in ZQL, the less\n",
"we need to do locally."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"# Brim Workspace to query\n",
"space = 'tzng'\n",
"\n",
"# ZQL Query to execute\n",
"zql = '_path=conn | cut ts, uid, id, proto, service, duration, orig_bytes, resp_bytes, conn_state, orig_pkts, resp_pkts, orig_ip_bytes, resp_ip_bytes'\n",
"\n",
"# Create client instance, connect to ZQD, send ZQL query and store the flattened data in a Pandas DataFrame\n",
"try:\n",
" # Create ZQD client instance\n",
" c = zqd.Client() \n",
" # Send ZQL query to ZQD\n",
" s = c.search(space, zql)\n",
" # Create a DataFrame and flatten json/dictionary\n",
" df = pd.json_normalize(s)\n",
"except:\n",
" print(\"Failed to get data from ZQD, check that ZQD is running and space %s exists\" % space)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Basic DataFrame Information\n",
"We're going to look at some basic information about our DataFrame and the information it holds"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"First 5 Records\n",
"\n",
" ts uid proto service \\\n",
"0 2018-03-24 17:36:30.158241 CJUkJD11Rme8UyDFsc tcp None \n",
"1 2018-03-24 17:36:30.157998 C82Pmb1GxzLO4YVmo tcp None \n",
"2 2018-03-24 17:36:30.157610 CNfP6hr4c36b4ocJd tcp None \n",
"3 2018-03-24 17:36:30.156939 CZvjbZ2z5fZkmqZfGl tcp None \n",
"4 2018-03-24 17:36:30.156819 C3FYpr4IRQ5wVbJtv3 tcp None \n",
"\n",
" duration orig_bytes resp_bytes conn_state orig_pkts resp_pkts \\\n",
"0 00:00:00.000003 0.0 0.0 S0 2 0 \n",
"1 00:00:00.000004 0.0 0.0 S0 2 0 \n",
"2 00:00:00.000004 0.0 0.0 S0 2 0 \n",
"3 00:00:00.000003 0.0 0.0 S0 2 0 \n",
"4 00:00:00.001945 0.0 0.0 S3 4 6 \n",
"\n",
" orig_ip_bytes resp_ip_bytes id.orig_h id.orig_p id.resp_h \\\n",
"0 120 0 10.47.7.155 52294 134.71.3.16 \n",
"1 120 0 10.47.7.155 52293 134.71.3.16 \n",
"2 120 0 10.47.7.155 52292 134.71.3.16 \n",
"3 120 0 10.47.7.155 52291 134.71.3.16 \n",
"4 184 264 10.47.24.81 60882 10.128.0.238 \n",
"\n",
" id.resp_p \n",
"0 443 \n",
"1 443 \n",
"2 443 \n",
"3 443 \n",
"4 60004 \n",
"\n",
"Last 5 Records\n",
"\n",
" ts uid proto service \\\n",
"1021946 2018-03-24 17:15:20.601374 CRLZQG1RmaUchQyqCl tcp None \n",
"1021947 2018-03-24 17:15:20.601314 CL31Wl4WQoDATEz5Z8 tcp None \n",
"1021948 2018-03-24 17:15:20.601310 CD3zwQ1YDr4XiQzO1e tcp None \n",
"1021949 2018-03-24 17:15:20.600800 CfbnHCmClhWXY99ui icmp None \n",
"1021950 2018-03-24 17:15:20.600725 C1zOivgBT6dBmknqk tcp None \n",
"\n",
" duration orig_bytes resp_bytes conn_state orig_pkts \\\n",
"1021946 00:10:01.537328 4022.0 118006.0 SF 226 \n",
"1021947 00:00:00.004093 128.0 19.0 RSTRH 4 \n",
"1021948 00:00:00.000002 0.0 0.0 S0 2 \n",
"1021949 00:00:00.001278 336.0 0.0 OTH 28 \n",
"1021950 00:00:09.698493 0.0 90453565.0 SF 57490 \n",
"\n",
" resp_pkts orig_ip_bytes resp_ip_bytes id.orig_h id.orig_p \\\n",
"1021946 258 19796 249428 10.47.5.154 58076 \n",
"1021947 4 464 222 10.164.94.120 34261 \n",
"1021948 0 88 0 10.128.0.207 59777 \n",
"1021949 0 1120 0 10.128.0.207 13 \n",
"1021950 123713 2358856 185470730 10.47.1.152 49562 \n",
"\n",
" id.resp_h id.resp_p \n",
"1021946 216.58.193.193 443 \n",
"1021947 10.47.8.208 3389 \n",
"1021948 10.47.28.6 443 \n",
"1021949 10.47.19.254 14 \n",
"1021950 23.217.103.245 80 \n"
]
}
],
"source": [
"# Get some basic info on our dataframe\n",
"print(\"\\nFirst 5 Records\\n\")\n",
"print(df.head(5))\n",
"print(\"\\nLast 5 Records\\n\")\n",
"print(df.tail(5))"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Describe data\n",
"\n",
" duration orig_bytes resp_bytes orig_pkts \\\n",
"count 1021802 1.021802e+06 1.021802e+06 1.021951e+06 \n",
"mean 0 days 00:00:01.637376 1.769863e+02 6.867301e+03 1.238628e+01 \n",
"std 0 days 00:00:29.110811 6.921331e+03 2.418953e+06 1.259367e+03 \n",
"min 0 days 00:00:00.000001 0.000000e+00 0.000000e+00 0.000000e+00 \n",
"25% 0 days 00:00:00.000004 0.000000e+00 0.000000e+00 2.000000e+00 \n",
"50% 0 days 00:00:00.000727 0.000000e+00 0.000000e+00 2.000000e+00 \n",
"75% 0 days 00:00:00.002494 0.000000e+00 0.000000e+00 8.000000e+00 \n",
"max 0 days 00:21:09.512465 4.862366e+06 1.781771e+09 1.158008e+06 \n",
"\n",
" resp_pkts orig_ip_bytes resp_ip_bytes id.orig_p id.resp_p \n",
"count 1.021951e+06 1.021951e+06 1.021951e+06 1.021951e+06 1.021951e+06 \n",
"mean 1.249090e+01 8.550067e+02 1.105179e+04 4.946244e+04 2.162521e+04 \n",
"std 2.572863e+03 5.583361e+04 3.769813e+06 1.262382e+04 2.711844e+04 \n",
"min 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 \n",
"25% 0.000000e+00 8.800000e+01 0.000000e+00 4.199550e+04 4.430000e+02 \n",
"50% 2.000000e+00 8.800000e+01 8.000000e+01 5.079500e+04 3.389000e+03 \n",
"75% 8.000000e+00 3.440000e+02 3.440000e+02 5.808400e+04 6.000400e+04 \n",
"max 2.433222e+06 4.637740e+07 3.581631e+09 6.553500e+04 6.553400e+04 \n"
]
}
],
"source": [
"print(\"\\nDescribe data\\n\")\n",
"print(df.describe())"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Data types\n",
"\n",
"ts datetime64[ns]\n",
"uid object\n",
"proto object\n",
"service object\n",
"duration timedelta64[ns]\n",
"orig_bytes float64\n",
"resp_bytes float64\n",
"conn_state object\n",
"orig_pkts int64\n",
"resp_pkts int64\n",
"orig_ip_bytes int64\n",
"resp_ip_bytes int64\n",
"id.orig_h object\n",
"id.orig_p int64\n",
"id.resp_h object\n",
"id.resp_p int64\n",
"dtype: object\n"
]
}
],
"source": [
"print(\"\\nData types\\n\")\n",
"print(df.dtypes)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Check for NaN fields\n",
"\n",
"ts 0\n",
"uid 0\n",
"proto 0\n",
"service 948543\n",
"duration 149\n",
"orig_bytes 149\n",
"resp_bytes 149\n",
"conn_state 0\n",
"orig_pkts 0\n",
"resp_pkts 0\n",
"orig_ip_bytes 0\n",
"resp_ip_bytes 0\n",
"id.orig_h 0\n",
"id.orig_p 0\n",
"id.resp_h 0\n",
"id.resp_p 0\n",
"dtype: int64\n"
]
}
],
"source": [
"print(\"\\nCheck for NaN fields\\n\")\n",
"print(df.isna().sum())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Missing data\n",
"See the link below for approaches to deal with missing data fields\n",
"https://pandas.pydata.org/pandas-docs/stable/user_guide/missing_data.html\n",
"\n",
"You can uncomment line 2 in the cell below to drop all missing data"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"# Uncomment to drop missing values if required\n",
"# df.dropna(axis=0, how='any', inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"948990"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#Validate there are no missing values now\n",
"df.isna().sum().sum()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Basic Pandas Data Analysis\n",
"Let's do somthing with our data.\n",
"\n",
"We create a new DataFrame containing a curated summary view, where we group connections by the source host, then the destination hosts, by port, detailing metrics such as the total duration and received bytes"
]
},
{
"cell_type": "code",
"execution_count": 13,
"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></th>\n",
" <th></th>\n",
" <th>Count</th>\n",
" <th>Duration</th>\n",
" <th>Bytes_received</th>\n",
" </tr>\n",
" <tr>\n",
" <th>id.orig_h</th>\n",
" <th>id.resp_h</th>\n",
" <th>id.resp_p</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>10.47.7.155</th>\n",
" <th>134.71.3.16</th>\n",
" <th>443</th>\n",
" <td>262</td>\n",
" <td>00:23:22.932568</td>\n",
" <td>2920305.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10.47.24.81</th>\n",
" <th>10.128.0.238</th>\n",
" <th>60004</th>\n",
" <td>162206</td>\n",
" <td>00:07:57.146486</td>\n",
" <td>24.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"3\" valign=\"top\">10.239.34.35</th>\n",
" <th>10.47.6.53</th>\n",
" <th>2121</th>\n",
" <td>1</td>\n",
" <td>00:00:00.000002</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10.47.6.55</th>\n",
" <th>9999</th>\n",
" <td>1</td>\n",
" <td>00:00:00.000002</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10.47.8.200</th>\n",
" <th>49157</th>\n",
" <td>2</td>\n",
" <td>00:00:00.000004</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"5\" valign=\"top\">10.174.251.215</th>\n",
" <th>10.47.6.208</th>\n",
" <th>26</th>\n",
" <td>42</td>\n",
" <td>00:00:00.000457</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10.47.2.208</th>\n",
" <th>8081</th>\n",
" <td>42</td>\n",
" <td>00:00:00.000146</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10.47.2.30</th>\n",
" <th>515</th>\n",
" <td>42</td>\n",
" <td>00:00:00.000384</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10.47.22.1</th>\n",
" <th>32768</th>\n",
" <td>42</td>\n",
" <td>00:00:00.000109</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10.47.6.53</th>\n",
" <th>8009</th>\n",
" <td>42</td>\n",
" <td>00:00:00.001050</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>100 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" Count Duration Bytes_received\n",
"id.orig_h id.resp_h id.resp_p \n",
"10.47.7.155 134.71.3.16 443 262 00:23:22.932568 2920305.0\n",
"10.47.24.81 10.128.0.238 60004 162206 00:07:57.146486 24.0\n",
"10.239.34.35 10.47.6.53 2121 1 00:00:00.000002 0.0\n",
" 10.47.6.55 9999 1 00:00:00.000002 0.0\n",
" 10.47.8.200 49157 2 00:00:00.000004 0.0\n",
"... ... ... ...\n",
"10.174.251.215 10.47.6.208 26 42 00:00:00.000457 0.0\n",
" 10.47.2.208 8081 42 00:00:00.000146 0.0\n",
" 10.47.2.30 515 42 00:00:00.000384 0.0\n",
" 10.47.22.1 32768 42 00:00:00.000109 0.0\n",
" 10.47.6.53 8009 42 00:00:00.001050 0.0\n",
"\n",
"[100 rows x 3 columns]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Create a Summary view \n",
"df_summary = df[['id.orig_h','id.resp_h','id.resp_p', 'duration', 'resp_bytes']].groupby(['id.orig_h', 'id.resp_h', 'id.resp_p'], sort=False).agg(\n",
"Count = pd.NamedAgg('duration', 'count'),\n",
" Duration = pd.NamedAgg('duration', 'sum'),\n",
" Bytes_received = pd.NamedAgg('resp_bytes', 'sum')\n",
")\n",
"# Show the first X records for validation\n",
"df_summary.head(100)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Ranking the connections by Duration\n",
"We create a new DataFrame with all connections ranked by the duration, using Panda's rank() function\n",
"https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.rank.html"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"# Rank the connections using the rank() function on the duration of connection \n",
"df_summary['rank'] = df_summary['Duration'].rank(method='first', ascending=False).astype('int')\n",
"# Show the top 10 \n",
"df_summary_sorted = df_summary.sort_values(by='rank').head(20)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Interim check\n",
"Let's see what data types our new DataFrame holds"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Count int64\n",
"Duration timedelta64[ns]\n",
"Bytes_received float64\n",
"rank int32\n",
"dtype: object"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_summary_sorted.dtypes"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Style the output\n",
"Using Panda's style() functions\n",
"https://pandas.pydata.org/pandas-docs/stable/user_guide/style.html\n",
"\n",
"We're going to apply a background gradient to color low and high values from cool (blue) to warm (red)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style type=\"text/css\" >\n",
" #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row0_col0 {\n",
" background-color: #b40426;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row0_col1 {\n",
" background-color: #b40426;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row0_col2 {\n",
" background-color: #3b4cc0;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row0_col3 {\n",
" background-color: #3b4cc0;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row1_col0 {\n",
" background-color: #b9d0f9;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row1_col1 {\n",
" background-color: #7a9df8;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row1_col2 {\n",
" background-color: #3e51c5;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row1_col3 {\n",
" background-color: #4a63d3;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row2_col0 {\n",
" background-color: #4257c9;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row2_col1 {\n",
" background-color: #7396f5;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row2_col2 {\n",
" background-color: #84a7fc;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row2_col3 {\n",
" background-color: #5a78e4;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row3_col0 {\n",
" background-color: #465ecf;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row3_col1 {\n",
" background-color: #516ddb;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row3_col2 {\n",
" background-color: #85a8fc;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row3_col3 {\n",
" background-color: #6c8ff1;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row4_col0 {\n",
" background-color: #3f53c6;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row4_col1 {\n",
" background-color: #4c66d6;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row4_col2 {\n",
" background-color: #cc403a;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row4_col3 {\n",
" background-color: #7ea1fa;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row5_col0 {\n",
" background-color: #3b4cc0;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row5_col1 {\n",
" background-color: #455cce;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row5_col2 {\n",
" background-color: #9dbdff;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row5_col3 {\n",
" background-color: #92b4fe;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row6_col0 {\n",
" background-color: #465ecf;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row6_col1 {\n",
" background-color: #4257c9;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row6_col2 {\n",
" background-color: #90b2fe;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row6_col3 {\n",
" background-color: #a3c2fe;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row7_col0 {\n",
" background-color: #3b4cc0;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row7_col1 {\n",
" background-color: #3f53c6;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row7_col2 {\n",
" background-color: #b40426;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row7_col3 {\n",
" background-color: #b6cefa;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row8_col0 {\n",
" background-color: #4257c9;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row8_col1 {\n",
" background-color: #3f53c6;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row8_col2 {\n",
" background-color: #96b7ff;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row8_col3 {\n",
" background-color: #c6d6f1;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row9_col0 {\n",
" background-color: #5e7de7;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row9_col1 {\n",
" background-color: #3d50c3;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row9_col2 {\n",
" background-color: #4055c8;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row9_col3 {\n",
" background-color: #d6dce4;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row10_col0 {\n",
" background-color: #6282ea;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row10_col1 {\n",
" background-color: #3d50c3;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row10_col2 {\n",
" background-color: #4257c9;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row10_col3 {\n",
" background-color: #e3d9d3;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row11_col0 {\n",
" background-color: #6180e9;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row11_col1 {\n",
" background-color: #3d50c3;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row11_col2 {\n",
" background-color: #4257c9;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row11_col3 {\n",
" background-color: #efcfbf;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row12_col0 {\n",
" background-color: #6384eb;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row12_col1 {\n",
" background-color: #3d50c3;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row12_col2 {\n",
" background-color: #4257c9;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row12_col3 {\n",
" background-color: #f5c2aa;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row13_col0 {\n",
" background-color: #6282ea;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row13_col1 {\n",
" background-color: #3d50c3;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row13_col2 {\n",
" background-color: #4257c9;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row13_col3 {\n",
" background-color: #f7b194;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row14_col0 {\n",
" background-color: #6384eb;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row14_col1 {\n",
" background-color: #3d50c3;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row14_col2 {\n",
" background-color: #4257c9;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row14_col3 {\n",
" background-color: #f59f80;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row15_col0 {\n",
" background-color: #6282ea;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row15_col1 {\n",
" background-color: #3d50c3;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row15_col2 {\n",
" background-color: #4257c9;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row15_col3 {\n",
" background-color: #ef886b;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row16_col0 {\n",
" background-color: #485fd1;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row16_col1 {\n",
" background-color: #3c4ec2;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row16_col2 {\n",
" background-color: #6b8df0;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row16_col3 {\n",
" background-color: #e57058;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row17_col0 {\n",
" background-color: #81a4fb;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row17_col1 {\n",
" background-color: #3b4cc0;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row17_col2 {\n",
" background-color: #4257c9;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row17_col3 {\n",
" background-color: #d75445;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row18_col0 {\n",
" background-color: #8badfd;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row18_col1 {\n",
" background-color: #3b4cc0;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row18_col2 {\n",
" background-color: #4257c9;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row18_col3 {\n",
" background-color: #c73635;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row19_col0 {\n",
" background-color: #80a3fa;\n",
" color: #000000;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row19_col1 {\n",
" background-color: #3b4cc0;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row19_col2 {\n",
" background-color: #4055c8;\n",
" color: #f1f1f1;\n",
" } #T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row19_col3 {\n",
" background-color: #b40426;\n",
" color: #f1f1f1;\n",
" }</style><table id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5\" ><thead> <tr> <th class=\"blank\" ></th> <th class=\"blank\" ></th> <th class=\"blank level0\" ></th> <th class=\"col_heading level0 col0\" >Count</th> <th class=\"col_heading level0 col1\" >Duration</th> <th class=\"col_heading level0 col2\" >Bytes_received</th> <th class=\"col_heading level0 col3\" >rank</th> </tr> <tr> <th class=\"index_name level0\" >id.orig_h</th> <th class=\"index_name level1\" >id.resp_h</th> <th class=\"index_name level2\" >id.resp_p</th> <th class=\"blank\" ></th> <th class=\"blank\" ></th> <th class=\"blank\" ></th> <th class=\"blank\" ></th> </tr></thead><tbody>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level0_row0\" class=\"row_heading level0 row0\" >10.47.1.20</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row0\" class=\"row_heading level1 row0\" >10.128.0.215</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row0\" class=\"row_heading level2 row0\" >8080</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row0_col0\" class=\"data row0 col0\" >776</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row0_col1\" class=\"data row0 col1\" >0 days 15:02:21.363546</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row0_col2\" class=\"data row0 col2\" >306291.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row0_col3\" class=\"data row0 col3\" >1</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level0_row1\" class=\"row_heading level0 row1\" >10.47.2.100</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row1\" class=\"row_heading level1 row1\" >151.101.196.133</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row1\" class=\"row_heading level2 row1\" >443</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row1_col0\" class=\"data row1 col0\" >297</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row1_col1\" class=\"data row1 col1\" >0 days 04:32:26.784338</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row1_col2\" class=\"data row1 col2\" >1203671.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row1_col3\" class=\"data row1 col3\" >2</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level0_row2\" class=\"row_heading level0 row2\" >10.47.2.158</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row2\" class=\"row_heading level1 row2\" >134.71.3.17</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row2\" class=\"row_heading level2 row2\" >443</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row2_col0\" class=\"data row2 col0\" >29</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row2_col1\" class=\"data row2 col1\" >0 days 04:17:21.611856</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row2_col2\" class=\"data row2 col2\" >16257408.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row2_col3\" class=\"data row2 col3\" >3</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level0_row3\" class=\"row_heading level0 row3\" >10.47.4.153</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row3\" class=\"row_heading level1 row3\" >134.71.3.17</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row3\" class=\"row_heading level2 row3\" >443</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row3_col0\" class=\"data row3 col0\" >39</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row3_col1\" class=\"data row3 col1\" >0 days 02:59:07.646007</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row3_col2\" class=\"data row3 col2\" >16595340.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row3_col3\" class=\"data row3 col3\" >4</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level0_row4\" class=\"row_heading level0 row4\" >10.47.1.154</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row4\" class=\"row_heading level1 row4\" >134.71.3.17</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row4\" class=\"row_heading level2 row4\" >443</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row4_col0\" class=\"data row4 col0\" >22</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row4_col1\" class=\"data row4 col1\" >0 days 02:44:46.250377</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row4_col2\" class=\"data row4 col2\" >66320266.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row4_col3\" class=\"data row4 col3\" >5</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level0_row5\" class=\"row_heading level0 row5\" >10.47.2.156</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row5\" class=\"row_heading level1 row5\" >134.71.3.17</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row5\" class=\"row_heading level2 row5\" >443</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row5_col0\" class=\"data row5 col0\" >9</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row5_col1\" class=\"data row5 col1\" >0 days 02:27:38.332332</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row5_col2\" class=\"data row5 col2\" >21170468.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row5_col3\" class=\"data row5 col3\" >6</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level0_row6\" class=\"row_heading level0 row6\" >10.47.6.160</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row6\" class=\"row_heading level1 row6\" >134.71.3.17</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row6\" class=\"row_heading level2 row6\" >443</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row6_col0\" class=\"data row6 col0\" >39</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row6_col1\" class=\"data row6 col1\" >0 days 02:18:52.897397</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row6_col2\" class=\"data row6 col2\" >18647738.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row6_col3\" class=\"data row6 col3\" >7</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level0_row7\" class=\"row_heading level0 row7\" >10.47.6.161</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row7\" class=\"row_heading level1 row7\" >134.71.3.17</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row7\" class=\"row_heading level2 row7\" >443</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row7_col0\" class=\"data row7 col0\" >11</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row7_col1\" class=\"data row7 col1\" >0 days 02:12:41.095334</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row7_col2\" class=\"data row7 col2\" >71163383.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row7_col3\" class=\"data row7 col3\" >8</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level0_row8\" class=\"row_heading level0 row8\" >10.47.5.152</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row8\" class=\"row_heading level1 row8\" >134.71.3.17</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row8\" class=\"row_heading level2 row8\" >443</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row8_col0\" class=\"data row8 col0\" >28</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row8_col1\" class=\"data row8 col1\" >0 days 02:11:27.074522</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row8_col2\" class=\"data row8 col2\" >19871066.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row8_col3\" class=\"data row8 col3\" >9</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level0_row9\" class=\"row_heading level0 row9\" >10.0.0.227</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row9\" class=\"row_heading level1 row9\" >10.47.4.58</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row9\" class=\"row_heading level2 row9\" >80</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row9_col0\" class=\"data row9 col0\" >96</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row9_col1\" class=\"data row9 col1\" >0 days 02:06:39.364583</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row9_col2\" class=\"data row9 col2\" >1796721.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row9_col3\" class=\"data row9 col3\" >10</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level0_row10\" class=\"row_heading level0 row10\" >10.128.0.223</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row10\" class=\"row_heading level1 row10\" >10.47.7.58</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row10\" class=\"row_heading level2 row10\" >80</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row10_col0\" class=\"data row10 col0\" >106</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row10_col1\" class=\"data row10 col1\" >0 days 02:06:11.259648</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row10_col2\" class=\"data row10 col2\" >2074591.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row10_col3\" class=\"data row10 col3\" >11</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level0_row11\" class=\"row_heading level0 row11\" rowspan=5>10.0.0.227</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row11\" class=\"row_heading level1 row11\" >10.47.6.58</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row11\" class=\"row_heading level2 row11\" >80</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row11_col0\" class=\"data row11 col0\" >104</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row11_col1\" class=\"data row11 col1\" >0 days 02:05:56.022687</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row11_col2\" class=\"data row11 col2\" >2069353.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row11_col3\" class=\"data row11 col3\" >12</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row12\" class=\"row_heading level1 row12\" >10.47.8.58</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row12\" class=\"row_heading level2 row12\" >80</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row12_col0\" class=\"data row12 col0\" >108</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row12_col1\" class=\"data row12 col1\" >0 days 02:05:33.370643</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row12_col2\" class=\"data row12 col2\" >2085334.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row12_col3\" class=\"data row12 col3\" >13</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row13\" class=\"row_heading level1 row13\" >10.47.5.58</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row13\" class=\"row_heading level2 row13\" >80</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row13_col0\" class=\"data row13 col0\" >107</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row13_col1\" class=\"data row13 col1\" >0 days 02:05:30.483124</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row13_col2\" class=\"data row13 col2\" >2066952.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row13_col3\" class=\"data row13 col3\" >14</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row14\" class=\"row_heading level1 row14\" >10.47.2.58</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row14\" class=\"row_heading level2 row14\" >80</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row14_col0\" class=\"data row14 col0\" >108</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row14_col1\" class=\"data row14 col1\" >0 days 02:04:41.109308</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row14_col2\" class=\"data row14 col2\" >2075141.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row14_col3\" class=\"data row14 col3\" >15</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row15\" class=\"row_heading level1 row15\" >10.47.7.58</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row15\" class=\"row_heading level2 row15\" >80</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row15_col0\" class=\"data row15 col0\" >106</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row15_col1\" class=\"data row15 col1\" >0 days 02:04:32.526138</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row15_col2\" class=\"data row15 col2\" >2073372.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row15_col3\" class=\"data row15 col3\" >16</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level0_row16\" class=\"row_heading level0 row16\" >10.47.1.153</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row16\" class=\"row_heading level1 row16\" >134.71.3.17</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row16\" class=\"row_heading level2 row16\" >443</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row16_col0\" class=\"data row16 col0\" >42</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row16_col1\" class=\"data row16 col1\" >0 days 02:01:20.459913</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row16_col2\" class=\"data row16 col2\" >11138756.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row16_col3\" class=\"data row16 col3\" >17</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level0_row17\" class=\"row_heading level0 row17\" rowspan=3>10.0.0.251</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row17\" class=\"row_heading level1 row17\" >10.47.6.58</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row17\" class=\"row_heading level2 row17\" >80</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row17_col0\" class=\"data row17 col0\" >174</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row17_col1\" class=\"data row17 col1\" >0 days 01:59:57.666909</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row17_col2\" class=\"data row17 col2\" >2091003.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row17_col3\" class=\"data row17 col3\" >18</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row18\" class=\"row_heading level1 row18\" >10.47.7.58</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row18\" class=\"row_heading level2 row18\" >80</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row18_col0\" class=\"data row18 col0\" >195</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row18_col1\" class=\"data row18 col1\" >0 days 01:58:57.391784</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row18_col2\" class=\"data row18 col2\" >2070159.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row18_col3\" class=\"data row18 col3\" >19</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level1_row19\" class=\"row_heading level1 row19\" >10.47.5.58</th>\n",
" <th id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5level2_row19\" class=\"row_heading level2 row19\" >80</th>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row19_col0\" class=\"data row19 col0\" >173</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row19_col1\" class=\"data row19 col1\" >0 days 01:58:11.920996</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row19_col2\" class=\"data row19 col2\" >1826796.000000</td>\n",
" <td id=\"T_b9967d36_33d7_11eb_8d77_c8f75046d8d5row19_col3\" class=\"data row19 col3\" >20</td>\n",
" </tr>\n",
" </tbody></table>"
],
"text/plain": [
"<pandas.io.formats.style.Styler at 0x2c4d7986b50>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Highlight key metrics by creating a Gradient view using a color map \n",
"df_styled = df_summary_sorted.style.background_gradient(cmap=\"coolwarm\")\n",
"df_styled"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Scatter plot\n",
"we draw a scatter plot of our \"summary\" DataFrame, based on \"Bytes Received\" by \"Rank\""
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"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": [
"df_summary.plot(kind='scatter', x='rank', y='Bytes_received')\n",
"plt.title(\"Bytes Received by rank Scatter Plot\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Boxplot Connection Count\n",
"We draw a boxplot of our summary DataFrame, plotting our aggregate Connection Count value."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"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": [
"connection_count = df_summary[['Count']] #excluding species column\n",
"connection_count.boxplot()\n",
"plt.xlabel('Metrics')\n",
"plt.ylabel('Values')\n",
"plt.title(\"Connection Count Box Plot\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.3"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"state": {},
"version_major": 2,
"version_minor": 0
}
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment