mirror of
https://github.com/norandom/log2ml.git
synced 2025-04-19 15:21:27 +00:00
3689 lines
237 KiB
Plaintext
3689 lines
237 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "fa00684b-2e50-4cf5-b8f3-bd28f583391b",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Elasticsearch and tabular integration\n",
|
|
"\n",
|
|
"Elasticsearch is a NoSQL database, which indexes JSON records.\n",
|
|
"In the following the Winlog Beat index gets queried, which holds Windows EventLog data.\n",
|
|
"The Elasticsearch SQL endpoint is used to define a query, and the resulting data is retrieved as a JSON stream.\n",
|
|
"The data gets read into in-memory dataframe objects which allow data-manipulation tasks.\n",
|
|
"\n",
|
|
"In-memory processing can be difficult if the datasets grow large.\n",
|
|
"Therefore a comparison is made between two polular in-memory dataframe libraries:\n",
|
|
"\n",
|
|
"1.) Pandas\n",
|
|
"2.) Polars\n",
|
|
"\n",
|
|
"The memory footprint is assessed, because runtime memory is the limiting factor for the implementations."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "0bd2a29a-68e0-42a6-b46d-13aa95eca26d",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Versions"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"id": "9ea2636c-b07e-44c8-ba5f-aace81dba245",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Name: pandas\n",
|
|
"Version: 2.1.4\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"!pip show pandas | grep -E 'Name:|Version:'"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "590ac008-153d-4603-83bc-02f87a7a8d60",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Name: polars\n",
|
|
"Version: 0.20.26\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"!pip show polars | grep -E 'Name:|Version:'"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "b7760198-a975-4810-b3d4-25554e4fe3c4",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Elasticsearch API\n",
|
|
"\n",
|
|
"The Elasticsearch API uses HTTP and is available on port 9200.\n",
|
|
"\n",
|
|
"The index \"winlogbeat-\" contains data from the period. It's a periodically rotating index.\n",
|
|
"\n",
|
|
"Here the Elasticsearch DSL is used, and an event timeline is being retrieved, in time-descending order.\n",
|
|
"\n",
|
|
"The resulting JSON data is piped to the `jq` utility, which is prettier on a command-line.\n",
|
|
"Only the first JSON record is analyzed. \n",
|
|
"\n",
|
|
"The output shows the index and the timestamp."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 21,
|
|
"id": "cce35135-52d7-484b-bbae-d1c876836433",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"{\n",
|
|
" \"index\": \"winlogbeat-7.10.0-2024.05.15-000008\",\n",
|
|
" \"timestamp\": \"2024-05-15T15:57:22.877Z\"\n",
|
|
"}\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"%%bash\n",
|
|
"curl -s -X GET \"http://192.168.20.106:9200/winlogbeat-*/_search\" -H 'Content-Type: application/json' -d '{\n",
|
|
" \"size\": 1,\n",
|
|
" \"sort\": [\n",
|
|
" {\n",
|
|
" \"@timestamp\": {\n",
|
|
" \"order\": \"desc\"\n",
|
|
" }\n",
|
|
" }\n",
|
|
" ]\n",
|
|
"}' | jq '.hits.hits[0] | {index: ._index, timestamp: ._source[\"@timestamp\"]}'\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "4e6efd1c-2f22-4f5b-9ad7-b569065f182d",
|
|
"metadata": {},
|
|
"source": [
|
|
"The following Bash command shows a SQL query.\n",
|
|
"\n",
|
|
"The `Limit 1` is a common SQL statement.\n",
|
|
"The output is further limited with the `head` command. Only the first fields of the first record are shown.\n",
|
|
"\n",
|
|
"By default the order of records doesn't represent a timeline, but the order of records in the index."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 27,
|
|
"id": "2d3f97cb-cc71-4d81-ad9c-df11125cd109",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"{\n",
|
|
" \"size\": 1,\n",
|
|
" \"_source\": {\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"%%bash\n",
|
|
"curl -s -X POST \"http://192.168.20.106:9200/_sql/translate\" -H 'Content-Type: application/json' -d '{\n",
|
|
" \"query\": \"SELECT * FROM \\\"winlogbeat-7.10.0-2024.05.15-*\\\" LIMIT 1\"\n",
|
|
"}' | jq | head -n 3\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "9e42a51f-e5a0-480d-9e2e-9744a288aef7",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Elasticsearch tabular-integration and Pandas\n",
|
|
"\n",
|
|
"Pandas is the de-facto standard for data-manipulation of small to medium datasets in Data Science.\n",
|
|
"It offers robust functions for in-memory data transactions and tabular feature integration.\n",
|
|
"\n",
|
|
"In the following the expansion of JSON data is used to allow a simple feature selection for further processing.\n",
|
|
"The data is returned from Elasticsearch, from an SQL query.\n",
|
|
"\n",
|
|
"The data is provided via a Scrolling API, which delivers a portion of the data each time.\n",
|
|
"This simplifies batch processing of large datasets."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 64,
|
|
"id": "f8747542-a2d1-4814-8dc2-acf172db2d0c",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Retrieved 1000 documents.\n",
|
|
"Retrieved 2000 documents.\n",
|
|
"Retrieved 3000 documents.\n",
|
|
"Retrieved 4000 documents.\n",
|
|
"Retrieved 5000 documents.\n",
|
|
"Files have been written.\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"import requests\n",
|
|
"import pandas as pd\n",
|
|
"import json\n",
|
|
"\n",
|
|
"# Function to recursively normalize nested columns in a DataFrame\n",
|
|
"def recursively_normalize(data):\n",
|
|
" df = pd.json_normalize(data)\n",
|
|
" while True:\n",
|
|
" nested_cols = [col for col in df.columns if isinstance(df[col].iloc[0], (dict, list))]\n",
|
|
" if not nested_cols:\n",
|
|
" break\n",
|
|
" for col in nested_cols:\n",
|
|
" if isinstance(df[col].iloc[0], dict):\n",
|
|
" normalized = pd.json_normalize(df[col])\n",
|
|
" df = df.drop(columns=[col]).join(normalized)\n",
|
|
" elif isinstance(df[col].iloc[0], list):\n",
|
|
" df = df.explode(col)\n",
|
|
" normalized = pd.json_normalize(df[col])\n",
|
|
" df = df.drop(columns=[col]).join(normalized)\n",
|
|
" return df\n",
|
|
"\n",
|
|
"# Function to fetch the next batch using the cursor\n",
|
|
"def fetch_next_batch(cursor):\n",
|
|
" response = requests.post(\n",
|
|
" f\"{base_url}/_sql?format=json\",\n",
|
|
" headers={\"Content-Type\": \"application/json\"},\n",
|
|
" json={\"cursor\": cursor}\n",
|
|
" ).json()\n",
|
|
" return response\n",
|
|
"\n",
|
|
"# Elasticsearch base URL\n",
|
|
"base_url = \"http://192.168.20.106:9200\"\n",
|
|
"# Index name\n",
|
|
"index = \"winlogbeat-*\"\n",
|
|
"\n",
|
|
"# SQL query for initial search\n",
|
|
"sql_query = \"\"\"\n",
|
|
"SELECT \"@timestamp\", host.hostname, host.ip, log.level, winlog.event_id, winlog.task, message FROM \"winlogbeat-7.10.0-2024.05.15-*\"\n",
|
|
"LIMIT 5000\n",
|
|
"\"\"\"\n",
|
|
"\n",
|
|
"# Initial search request to start scrolling\n",
|
|
"initial_response = requests.post(\n",
|
|
" f\"{base_url}/_sql?format=json\",\n",
|
|
" headers={\"Content-Type\": \"application/json\"},\n",
|
|
" json={\n",
|
|
" \"query\": sql_query,\n",
|
|
" \"field_multi_value_leniency\": True\n",
|
|
" }\n",
|
|
").json()\n",
|
|
"\n",
|
|
"# Extract the cursor for scrolling\n",
|
|
"cursor = initial_response.get('cursor')\n",
|
|
"rows = initial_response.get('rows')\n",
|
|
"columns = [col['name'] for col in initial_response['columns']]\n",
|
|
"\n",
|
|
"# Initialize CSV file (assumes the first batch is not empty)\n",
|
|
"if rows:\n",
|
|
" df = pd.DataFrame(rows, columns=columns)\n",
|
|
" df = recursively_normalize(df.to_dict(orient='records'))\n",
|
|
" df.to_csv(\"lab_logs_normal_activity.csv\", mode='w', index=False, header=True)\n",
|
|
"\n",
|
|
"# Track total documents retrieved\n",
|
|
"total_documents_retrieved = len(rows)\n",
|
|
"print(f\"Retrieved {total_documents_retrieved} documents.\")\n",
|
|
"\n",
|
|
"# Loop to fetch subsequent batches of documents until no more documents are left\n",
|
|
"while cursor:\n",
|
|
" # Fetch next batch of documents using cursor\n",
|
|
" response = fetch_next_batch(cursor)\n",
|
|
" \n",
|
|
" # Update cursor for the next batch\n",
|
|
" cursor = response.get('cursor')\n",
|
|
" rows = response.get('rows')\n",
|
|
" \n",
|
|
" # If no rows, break out of the loop\n",
|
|
" if not rows:\n",
|
|
" break\n",
|
|
" \n",
|
|
" # Normalize data and append to CSV\n",
|
|
" df = pd.DataFrame(rows, columns=columns)\n",
|
|
" df = recursively_normalize(df.to_dict(orient='records'))\n",
|
|
" \n",
|
|
" # Append to CSV file without headers\n",
|
|
" df.to_csv(\"lab_logs_normal_activity.csv\", mode='a', index=False, header=False)\n",
|
|
" \n",
|
|
" # Convert DataFrame to JSON, line by line\n",
|
|
" json_lines = df.to_json(orient='records', lines=True).splitlines()\n",
|
|
" # Append each line to an existing JSON file\n",
|
|
" with open(\"lab_logs_normal_activity.json\", 'a') as file:\n",
|
|
" for line in json_lines:\n",
|
|
" file.write(line + '\\n') # Append each line and add a newline\n",
|
|
" \n",
|
|
" # Update total documents retrieved\n",
|
|
" total_documents_retrieved += len(rows)\n",
|
|
" \n",
|
|
" print(f\"Retrieved {total_documents_retrieved} documents.\")\n",
|
|
"\n",
|
|
"print(\"Files have been written.\")\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "1b236f1c-7060-43a0-b4e7-2b9697114a3e",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Alternative approach with polars\n",
|
|
"\n",
|
|
"Polars is a newer tabular-integration library, which challenges Pandas. \n",
|
|
"It's supposed to me more memory efficient, because it's backend is written in Rust."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "78e37d61-4554-4bbb-99d9-ecbb2e892557",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"%pip install polars"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 63,
|
|
"id": "328b8d13-3cc0-4239-b3e5-d98da9bb51ec",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Retrieved 1000 documents.\n",
|
|
"Retrieved 2000 documents.\n",
|
|
"Retrieved 3000 documents.\n",
|
|
"Retrieved 4000 documents.\n",
|
|
"Retrieved 5000 documents.\n",
|
|
"Files have been written.\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"import requests\n",
|
|
"import polars as pl\n",
|
|
"import json\n",
|
|
"\n",
|
|
"# Function to recursively unnest nested columns in a DataFrame\n",
|
|
"def recursively_unnest(df):\n",
|
|
" nested = True\n",
|
|
" while nested:\n",
|
|
" nested = False\n",
|
|
" for col in df.columns:\n",
|
|
" if df[col].dtype == pl.List:\n",
|
|
" df = df.explode(col)\n",
|
|
" nested = True\n",
|
|
" elif df[col].dtype == pl.Struct:\n",
|
|
" df = df.unnest(col)\n",
|
|
" nested = True\n",
|
|
" return df\n",
|
|
"\n",
|
|
"# Function to fetch the next batch using the cursor\n",
|
|
"def fetch_next_batch(cursor):\n",
|
|
" response = requests.post(\n",
|
|
" f\"{base_url}/_sql?format=json\",\n",
|
|
" headers={\"Content-Type\": \"application/json\"},\n",
|
|
" json={\"cursor\": cursor}\n",
|
|
" ).json()\n",
|
|
" return response\n",
|
|
"\n",
|
|
"# Elasticsearch base URL\n",
|
|
"base_url = \"http://192.168.20.106:9200\"\n",
|
|
"# Index name\n",
|
|
"index = \"winlogbeat-*\"\n",
|
|
"\n",
|
|
"# SQL query for initial search\n",
|
|
"sql_query = \"\"\"\n",
|
|
"SELECT \"@timestamp\", host.hostname, host.ip, log.level, winlog.event_id, winlog.task, message FROM \"winlogbeat-7.10.0-2024.05.15-*\"\n",
|
|
"LIMIT 5000\n",
|
|
"\"\"\"\n",
|
|
"\n",
|
|
"# Initial search request to start scrolling\n",
|
|
"initial_response = requests.post(\n",
|
|
" f\"{base_url}/_sql?format=json\",\n",
|
|
" headers={\"Content-Type\": \"application/json\"},\n",
|
|
" json={\n",
|
|
" \"query\": sql_query,\n",
|
|
" \"field_multi_value_leniency\": True\n",
|
|
" }\n",
|
|
").json()\n",
|
|
"\n",
|
|
"# Extract the cursor for scrolling\n",
|
|
"cursor = initial_response.get('cursor')\n",
|
|
"rows = initial_response.get('rows')\n",
|
|
"columns = [col['name'] for col in initial_response['columns']]\n",
|
|
"\n",
|
|
"# Initialize CSV file (assumes the first batch is not empty)\n",
|
|
"if rows:\n",
|
|
" df = pl.DataFrame(rows, schema=columns)\n",
|
|
" df = recursively_unnest(df)\n",
|
|
" df.write_csv(\"lab_logs_normal_activity.csv\", include_header=True)\n",
|
|
"\n",
|
|
"# Track total documents retrieved\n",
|
|
"total_documents_retrieved = len(rows)\n",
|
|
"print(f\"Retrieved {total_documents_retrieved} documents.\")\n",
|
|
"\n",
|
|
"# Loop to fetch subsequent batches of documents until no more documents are left\n",
|
|
"while cursor:\n",
|
|
" # Fetch next batch of documents using cursor\n",
|
|
" response = fetch_next_batch(cursor)\n",
|
|
" \n",
|
|
" # Update cursor for the next batch\n",
|
|
" cursor = response.get('cursor')\n",
|
|
" rows = response.get('rows')\n",
|
|
" \n",
|
|
" # If no rows, break out of the loop\n",
|
|
" if not rows:\n",
|
|
" break\n",
|
|
" \n",
|
|
" # Normalize data and append to CSV\n",
|
|
" df = pl.DataFrame(rows, schema=columns)\n",
|
|
" df = recursively_unnest(df)\n",
|
|
" \n",
|
|
" # Manually write the CSV to avoid headers\n",
|
|
" with open(\"lab_logs_normal_activity.csv\", 'a') as f:\n",
|
|
" df.write_csv(f, include_header=False)\n",
|
|
" \n",
|
|
" # Convert DataFrame to JSON, line by line\n",
|
|
" json_lines = [json.dumps(record) for record in df.to_dicts()]\n",
|
|
" # Append each line to an existing JSON file\n",
|
|
" with open(\"lab_logs_normal_activity.json\", 'a') as file:\n",
|
|
" for line in json_lines:\n",
|
|
" file.write(line + '\\n') # Append each line and add a newline\n",
|
|
" \n",
|
|
" # Update total documents retrieved\n",
|
|
" total_documents_retrieved += len(rows)\n",
|
|
" \n",
|
|
" print(f\"Retrieved {total_documents_retrieved} documents.\")\n",
|
|
"\n",
|
|
"print(\"Files have been written.\")\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "3dd720a7-c716-4d41-9ab4-37652acca137",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"## Memory footprint and profile comparison"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "0e433322-5120-4451-9aa4-cfd5795aaa24",
|
|
"metadata": {},
|
|
"source": [
|
|
"A JSON schema is provided in both cases to improve the comparison."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 27,
|
|
"id": "93a2116d-1fdd-432b-a48c-8be77c67e0e7",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdin",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Once deleted, variables cannot be recovered. Proceed (y/[n])? y\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"%reset"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "bdf4020a-3b23-47e0-b7c4-3335bf3d5d8c",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"!pip install git+https://github.com/H4dr1en/jupyterflame.git"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "427b969f-0e68-44da-b74d-5cada875f74f",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# directly on the shell within the conda env: conda install -y perl"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 28,
|
|
"id": "08db61e8-d70f-4434-bfcc-6225405b81f2",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"The jupyterflame extension is already loaded. To reload it, use:\n",
|
|
" %reload_ext jupyterflame\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"%load_ext jupyterflame"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 29,
|
|
"id": "eefffe2a-f61c-47c8-90e3-d0de0ab932d6",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"@timestamp object\n",
|
|
"host.hostname object\n",
|
|
"host.ip object\n",
|
|
"log.level object\n",
|
|
"winlog.event_id int64\n",
|
|
"winlog.task object\n",
|
|
"message object\n",
|
|
"dtype: object\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"import pandas as pd\n",
|
|
"\n",
|
|
"# Read a small chunk of the JSON file\n",
|
|
"file_path = \"lab_logs_normal_activity.json\"\n",
|
|
"pd_df = pd.read_json(file_path, lines=True, nrows=10)\n",
|
|
"\n",
|
|
"print(pd_df.dtypes)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 46,
|
|
"id": "0b2be27e-a56c-411b-bbff-dc42e533ca80",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Polars Schema: {'@timestamp': String, 'host.hostname': String, 'host.ip': String, 'log.level': String, 'winlog.event_id': Int64, 'winlog.task': String, 'message': String}\n",
|
|
"Pandas Schema: {'@timestamp': 'str', 'host.hostname': 'str', 'host.ip': 'str', 'log.level': 'str', 'winlog.event_id': 'int64', 'winlog.task': 'str', 'message': 'str'}\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"import polars as pl\n",
|
|
"\n",
|
|
"# Define the mapping from Pandas dtype to Polars dtype\n",
|
|
"dtype_mapping = {\n",
|
|
" \"object\": pl.Utf8,\n",
|
|
" \"int64\": pl.Int64,\n",
|
|
" \"float64\": pl.Float64,\n",
|
|
" # Add more mappings if needed\n",
|
|
"}\n",
|
|
"\n",
|
|
"pandas_dtype_mapping = {\n",
|
|
" \"object\": \"str\",\n",
|
|
" \"int64\": \"int64\",\n",
|
|
" \"float64\": \"float64\",\n",
|
|
" # Add more mappings if needed\n",
|
|
"}\n",
|
|
"\n",
|
|
"\n",
|
|
"# Generate the schema for Polars from Pandas dtype\n",
|
|
"polars_schema = {col: dtype_mapping[str(dtype)] for col, dtype in pd_df.dtypes.items()}\n",
|
|
"print(\"Polars Schema:\", polars_schema)\n",
|
|
"\n",
|
|
"pandas_schema = {col: pandas_dtype_mapping[str(dtype)] for col, dtype in pd_df.dtypes.items()}\n",
|
|
"print(\"Pandas Schema:\", pandas_schema)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 53,
|
|
"id": "5ccc9d58-8e27-43d0-bf69-7f2ff44c9874",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def test_polars():\n",
|
|
" # Read the JSON file using the defined schema\n",
|
|
" lazy_df = pl.scan_ndjson(file_path)\n",
|
|
"\n",
|
|
" # Collect the LazyFrame to a DataFrame\n",
|
|
" pl_df = lazy_df.collect()\n",
|
|
"\n",
|
|
" # Convert columns to the correct data types according to the schema\n",
|
|
" pl_df = pl_df.with_columns([pl.col(col).cast(dtype) for col, dtype in polars_schema.items()])\n",
|
|
"\n",
|
|
" # Print the DataFrame and its memory usage\n",
|
|
" print(pl_df)\n",
|
|
"\n",
|
|
" num_rows_polars = pl_df.shape[0]\n",
|
|
"\n",
|
|
" print(f\"Polars DataFarme number of rows: {num_rows_polars}\")\n",
|
|
" print(f\"Polars DataFrame memory usage: {pl_df.estimated_size() / (1024 ** 2):.2f} MB\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 48,
|
|
"id": "6e1ca70b-9aae-43af-b1c0-cc8d6f19a7ce",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"shape: (8_000, 7)\n",
|
|
"┌──────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┐\n",
|
|
"│ @timestamp ┆ host.hostna ┆ host.ip ┆ log.level ┆ winlog.even ┆ winlog.task ┆ message │\n",
|
|
"│ --- ┆ me ┆ --- ┆ --- ┆ t_id ┆ --- ┆ --- │\n",
|
|
"│ str ┆ --- ┆ str ┆ str ┆ --- ┆ str ┆ str │\n",
|
|
"│ ┆ str ┆ ┆ ┆ i64 ┆ ┆ │\n",
|
|
"╞══════════════╪═════════════╪═════════════╪═════════════╪═════════════╪═════════════╪═════════════╡\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 13 ┆ Registry ┆ Registry │\n",
|
|
"│ 5:57:18.471Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ value set ┆ value set: │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ (rule: ┆ RuleName: … │\n",
|
|
"│ ┆ ┆ ┆ ┆ ┆ Regi… ┆ │\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 13 ┆ Registry ┆ Registry │\n",
|
|
"│ 5:57:18.471Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ value set ┆ value set: │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ (rule: ┆ RuleName: … │\n",
|
|
"│ ┆ ┆ ┆ ┆ ┆ Regi… ┆ │\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 13 ┆ Registry ┆ Registry │\n",
|
|
"│ 5:57:18.471Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ value set ┆ value set: │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ (rule: ┆ RuleName: … │\n",
|
|
"│ ┆ ┆ ┆ ┆ ┆ Regi… ┆ │\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 13 ┆ Registry ┆ Registry │\n",
|
|
"│ 5:57:18.471Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ value set ┆ value set: │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ (rule: ┆ RuleName: … │\n",
|
|
"│ ┆ ┆ ┆ ┆ ┆ Regi… ┆ │\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 13 ┆ Registry ┆ Registry │\n",
|
|
"│ 5:57:18.471Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ value set ┆ value set: │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ (rule: ┆ RuleName: … │\n",
|
|
"│ ┆ ┆ ┆ ┆ ┆ Regi… ┆ │\n",
|
|
"│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 4663 ┆ Removable ┆ An attempt │\n",
|
|
"│ 6:10:07.128Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ Storage ┆ was made to │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ ┆ access … │\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 4663 ┆ Removable ┆ An attempt │\n",
|
|
"│ 6:10:07.136Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ Storage ┆ was made to │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ ┆ access … │\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 4663 ┆ Removable ┆ An attempt │\n",
|
|
"│ 6:10:07.136Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ Storage ┆ was made to │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ ┆ access … │\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 4663 ┆ Removable ┆ An attempt │\n",
|
|
"│ 6:10:07.149Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ Storage ┆ was made to │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ ┆ access … │\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 4663 ┆ Removable ┆ An attempt │\n",
|
|
"│ 6:10:07.149Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ Storage ┆ was made to │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ ┆ access … │\n",
|
|
"└──────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┘\n",
|
|
"Pandas DataFarme number of rows: 8000\n",
|
|
"Polars DataFrame memory usage: 4.76 MB\n",
|
|
" "
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<?xml version=\"1.0\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<svg version=\"1.1\" width=\"1200\" height=\"230\" onload=\"init(evt)\" viewBox=\"0 0 1200 230\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<!-- Flame graph stack visualization. See https://github.com/brendangregg/FlameGraph for latest version, and http://www.brendangregg.com/flamegraphs.html for examples. -->\n",
|
|
"<!-- NOTES: -->\n",
|
|
"<defs>\n",
|
|
"\t<linearGradient id=\"background\" y1=\"0\" y2=\"1\" x1=\"0\" x2=\"0\" >\n",
|
|
"\t\t<stop stop-color=\"#eeeeee\" offset=\"5%\" />\n",
|
|
"\t\t<stop stop-color=\"#eeeeb0\" offset=\"95%\" />\n",
|
|
"\t</linearGradient>\n",
|
|
"</defs>\n",
|
|
"<style type=\"text/css\">\n",
|
|
"\ttext { font-family:Verdana; font-size:12px; fill:rgb(0,0,0); }\n",
|
|
"\t#search { opacity:0.1; cursor:pointer; }\n",
|
|
"\t#search:hover, #search.show { opacity:1; }\n",
|
|
"\t#subtitle { text-anchor:middle; font-color:rgb(160,160,160); }\n",
|
|
"\t#title { text-anchor:middle; font-size:17px}\n",
|
|
"\t#unzoom { cursor:pointer; }\n",
|
|
"\t#frames > *:hover { stroke:black; stroke-width:0.5; cursor:pointer; }\n",
|
|
"\t.hide { display:none; }\n",
|
|
"\t.parent { opacity:0.5; }\n",
|
|
"</style>\n",
|
|
"<script type=\"text/ecmascript\">\n",
|
|
"<![CDATA[\n",
|
|
"\t\"use strict\";\n",
|
|
"\tvar details, searchbtn, unzoombtn, matchedtxt, svg, searching;\n",
|
|
"\tfunction init(evt) {\n",
|
|
"\t\tdetails = document.getElementById(\"details\").firstChild;\n",
|
|
"\t\tsearchbtn = document.getElementById(\"search\");\n",
|
|
"\t\tunzoombtn = document.getElementById(\"unzoom\");\n",
|
|
"\t\tmatchedtxt = document.getElementById(\"matched\");\n",
|
|
"\t\tsvg = document.getElementsByTagName(\"svg\")[0];\n",
|
|
"\t\tsearching = 0;\n",
|
|
"\t}\n",
|
|
"\n",
|
|
"\twindow.addEventListener(\"click\", function(e) {\n",
|
|
"\t\tvar target = find_group(e.target);\n",
|
|
"\t\tif (target) {\n",
|
|
"\t\t\tif (target.nodeName == \"a\") {\n",
|
|
"\t\t\t\tif (e.ctrlKey === false) return;\n",
|
|
"\t\t\t\te.preventDefault();\n",
|
|
"\t\t\t}\n",
|
|
"\t\t\tif (target.classList.contains(\"parent\")) unzoom();\n",
|
|
"\t\t\tzoom(target);\n",
|
|
"\t\t}\n",
|
|
"\t\telse if (e.target.id == \"unzoom\") unzoom();\n",
|
|
"\t\telse if (e.target.id == \"search\") search_prompt();\n",
|
|
"\t}, false)\n",
|
|
"\n",
|
|
"\t// mouse-over for info\n",
|
|
"\t// show\n",
|
|
"\twindow.addEventListener(\"mouseover\", function(e) {\n",
|
|
"\t\tvar target = find_group(e.target);\n",
|
|
"\t\tif (target) details.nodeValue = \"Function: \" + g_to_text(target);\n",
|
|
"\t}, false)\n",
|
|
"\n",
|
|
"\t// clear\n",
|
|
"\twindow.addEventListener(\"mouseout\", function(e) {\n",
|
|
"\t\tvar target = find_group(e.target);\n",
|
|
"\t\tif (target) details.nodeValue = ' ';\n",
|
|
"\t}, false)\n",
|
|
"\n",
|
|
"\t// ctrl-F for search\n",
|
|
"\twindow.addEventListener(\"keydown\",function (e) {\n",
|
|
"\t\tif (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)) {\n",
|
|
"\t\t\te.preventDefault();\n",
|
|
"\t\t\tsearch_prompt();\n",
|
|
"\t\t}\n",
|
|
"\t}, false)\n",
|
|
"\n",
|
|
"\t// functions\n",
|
|
"\tfunction find_child(node, selector) {\n",
|
|
"\t\tvar children = node.querySelectorAll(selector);\n",
|
|
"\t\tif (children.length) return children[0];\n",
|
|
"\t\treturn;\n",
|
|
"\t}\n",
|
|
"\tfunction find_group(node) {\n",
|
|
"\t\tvar parent = node.parentElement;\n",
|
|
"\t\tif (!parent) return;\n",
|
|
"\t\tif (parent.id == \"frames\") return node;\n",
|
|
"\t\treturn find_group(parent);\n",
|
|
"\t}\n",
|
|
"\tfunction orig_save(e, attr, val) {\n",
|
|
"\t\tif (e.attributes[\"_orig_\" + attr] != undefined) return;\n",
|
|
"\t\tif (e.attributes[attr] == undefined) return;\n",
|
|
"\t\tif (val == undefined) val = e.attributes[attr].value;\n",
|
|
"\t\te.setAttribute(\"_orig_\" + attr, val);\n",
|
|
"\t}\n",
|
|
"\tfunction orig_load(e, attr) {\n",
|
|
"\t\tif (e.attributes[\"_orig_\"+attr] == undefined) return;\n",
|
|
"\t\te.attributes[attr].value = e.attributes[\"_orig_\" + attr].value;\n",
|
|
"\t\te.removeAttribute(\"_orig_\"+attr);\n",
|
|
"\t}\n",
|
|
"\tfunction g_to_text(e) {\n",
|
|
"\t\tvar text = find_child(e, \"title\").firstChild.nodeValue;\n",
|
|
"\t\treturn (text)\n",
|
|
"\t}\n",
|
|
"\tfunction g_to_func(e) {\n",
|
|
"\t\tvar func = g_to_text(e);\n",
|
|
"\t\t// if there's any manipulation we want to do to the function\n",
|
|
"\t\t// name before it's searched, do it here before returning.\n",
|
|
"\t\treturn (func);\n",
|
|
"\t}\n",
|
|
"\tfunction update_text(e) {\n",
|
|
"\t\tvar r = find_child(e, \"rect\");\n",
|
|
"\t\tvar t = find_child(e, \"text\");\n",
|
|
"\t\tvar w = parseFloat(r.attributes.width.value) -3;\n",
|
|
"\t\tvar txt = find_child(e, \"title\").textContent.replace(/\\([^(]*\\)$/,\"\");\n",
|
|
"\t\tt.attributes.x.value = parseFloat(r.attributes.x.value) + 3;\n",
|
|
"\n",
|
|
"\t\t// Smaller than this size won't fit anything\n",
|
|
"\t\tif (w < 2 * 12 * 0.59) {\n",
|
|
"\t\t\tt.textContent = \"\";\n",
|
|
"\t\t\treturn;\n",
|
|
"\t\t}\n",
|
|
"\n",
|
|
"\t\tt.textContent = txt;\n",
|
|
"\t\t// Fit in full text width\n",
|
|
"\t\tif (/^ *$/.test(txt) || t.getSubStringLength(0, txt.length) < w)\n",
|
|
"\t\t\treturn;\n",
|
|
"\n",
|
|
"\t\tfor (var x = txt.length - 2; x > 0; x--) {\n",
|
|
"\t\t\tif (t.getSubStringLength(0, x + 2) <= w) {\n",
|
|
"\t\t\t\tt.textContent = txt.substring(0, x) + \"..\";\n",
|
|
"\t\t\t\treturn;\n",
|
|
"\t\t\t}\n",
|
|
"\t\t}\n",
|
|
"\t\tt.textContent = \"\";\n",
|
|
"\t}\n",
|
|
"\n",
|
|
"\t// zoom\n",
|
|
"\tfunction zoom_reset(e) {\n",
|
|
"\t\tif (e.attributes != undefined) {\n",
|
|
"\t\t\torig_load(e, \"x\");\n",
|
|
"\t\t\torig_load(e, \"width\");\n",
|
|
"\t\t}\n",
|
|
"\t\tif (e.childNodes == undefined) return;\n",
|
|
"\t\tfor (var i = 0, c = e.childNodes; i < c.length; i++) {\n",
|
|
"\t\t\tzoom_reset(c[i]);\n",
|
|
"\t\t}\n",
|
|
"\t}\n",
|
|
"\tfunction zoom_child(e, x, ratio) {\n",
|
|
"\t\tif (e.attributes != undefined) {\n",
|
|
"\t\t\tif (e.attributes.x != undefined) {\n",
|
|
"\t\t\t\torig_save(e, \"x\");\n",
|
|
"\t\t\t\te.attributes.x.value = (parseFloat(e.attributes.x.value) - x - 10) * ratio + 10;\n",
|
|
"\t\t\t\tif (e.tagName == \"text\")\n",
|
|
"\t\t\t\t\te.attributes.x.value = find_child(e.parentNode, \"rect[x]\").attributes.x.value + 3;\n",
|
|
"\t\t\t}\n",
|
|
"\t\t\tif (e.attributes.width != undefined) {\n",
|
|
"\t\t\t\torig_save(e, \"width\");\n",
|
|
"\t\t\t\te.attributes.width.value = parseFloat(e.attributes.width.value) * ratio;\n",
|
|
"\t\t\t}\n",
|
|
"\t\t}\n",
|
|
"\n",
|
|
"\t\tif (e.childNodes == undefined) return;\n",
|
|
"\t\tfor (var i = 0, c = e.childNodes; i < c.length; i++) {\n",
|
|
"\t\t\tzoom_child(c[i], x - 10, ratio);\n",
|
|
"\t\t}\n",
|
|
"\t}\n",
|
|
"\tfunction zoom_parent(e) {\n",
|
|
"\t\tif (e.attributes) {\n",
|
|
"\t\t\tif (e.attributes.x != undefined) {\n",
|
|
"\t\t\t\torig_save(e, \"x\");\n",
|
|
"\t\t\t\te.attributes.x.value = 10;\n",
|
|
"\t\t\t}\n",
|
|
"\t\t\tif (e.attributes.width != undefined) {\n",
|
|
"\t\t\t\torig_save(e, \"width\");\n",
|
|
"\t\t\t\te.attributes.width.value = parseInt(svg.width.baseVal.value) - (10 * 2);\n",
|
|
"\t\t\t}\n",
|
|
"\t\t}\n",
|
|
"\t\tif (e.childNodes == undefined) return;\n",
|
|
"\t\tfor (var i = 0, c = e.childNodes; i < c.length; i++) {\n",
|
|
"\t\t\tzoom_parent(c[i]);\n",
|
|
"\t\t}\n",
|
|
"\t}\n",
|
|
"\tfunction zoom(node) {\n",
|
|
"\t\tvar attr = find_child(node, \"rect\").attributes;\n",
|
|
"\t\tvar width = parseFloat(attr.width.value);\n",
|
|
"\t\tvar xmin = parseFloat(attr.x.value);\n",
|
|
"\t\tvar xmax = parseFloat(xmin + width);\n",
|
|
"\t\tvar ymin = parseFloat(attr.y.value);\n",
|
|
"\t\tvar ratio = (svg.width.baseVal.value - 2 * 10) / width;\n",
|
|
"\n",
|
|
"\t\t// XXX: Workaround for JavaScript float issues (fix me)\n",
|
|
"\t\tvar fudge = 0.0001;\n",
|
|
"\n",
|
|
"\t\tunzoombtn.classList.remove(\"hide\");\n",
|
|
"\n",
|
|
"\t\tvar el = document.getElementById(\"frames\").children;\n",
|
|
"\t\tfor (var i = 0; i < el.length; i++) {\n",
|
|
"\t\t\tvar e = el[i];\n",
|
|
"\t\t\tvar a = find_child(e, \"rect\").attributes;\n",
|
|
"\t\t\tvar ex = parseFloat(a.x.value);\n",
|
|
"\t\t\tvar ew = parseFloat(a.width.value);\n",
|
|
"\t\t\tvar upstack;\n",
|
|
"\t\t\t// Is it an ancestor\n",
|
|
"\t\t\tif (1 == 0) {\n",
|
|
"\t\t\t\tupstack = parseFloat(a.y.value) > ymin;\n",
|
|
"\t\t\t} else {\n",
|
|
"\t\t\t\tupstack = parseFloat(a.y.value) < ymin;\n",
|
|
"\t\t\t}\n",
|
|
"\t\t\tif (upstack) {\n",
|
|
"\t\t\t\t// Direct ancestor\n",
|
|
"\t\t\t\tif (ex <= xmin && (ex+ew+fudge) >= xmax) {\n",
|
|
"\t\t\t\t\te.classList.add(\"parent\");\n",
|
|
"\t\t\t\t\tzoom_parent(e);\n",
|
|
"\t\t\t\t\tupdate_text(e);\n",
|
|
"\t\t\t\t}\n",
|
|
"\t\t\t\t// not in current path\n",
|
|
"\t\t\t\telse\n",
|
|
"\t\t\t\t\te.classList.add(\"hide\");\n",
|
|
"\t\t\t}\n",
|
|
"\t\t\t// Children maybe\n",
|
|
"\t\t\telse {\n",
|
|
"\t\t\t\t// no common path\n",
|
|
"\t\t\t\tif (ex < xmin || ex + fudge >= xmax) {\n",
|
|
"\t\t\t\t\te.classList.add(\"hide\");\n",
|
|
"\t\t\t\t}\n",
|
|
"\t\t\t\telse {\n",
|
|
"\t\t\t\t\tzoom_child(e, xmin, ratio);\n",
|
|
"\t\t\t\t\tupdate_text(e);\n",
|
|
"\t\t\t\t}\n",
|
|
"\t\t\t}\n",
|
|
"\t\t}\n",
|
|
"\t}\n",
|
|
"\tfunction unzoom() {\n",
|
|
"\t\tunzoombtn.classList.add(\"hide\");\n",
|
|
"\t\tvar el = document.getElementById(\"frames\").children;\n",
|
|
"\t\tfor(var i = 0; i < el.length; i++) {\n",
|
|
"\t\t\tel[i].classList.remove(\"parent\");\n",
|
|
"\t\t\tel[i].classList.remove(\"hide\");\n",
|
|
"\t\t\tzoom_reset(el[i]);\n",
|
|
"\t\t\tupdate_text(el[i]);\n",
|
|
"\t\t}\n",
|
|
"\t}\n",
|
|
"\n",
|
|
"\t// search\n",
|
|
"\tfunction reset_search() {\n",
|
|
"\t\tvar el = document.querySelectorAll(\"#frames rect\");\n",
|
|
"\t\tfor (var i = 0; i < el.length; i++) {\n",
|
|
"\t\t\torig_load(el[i], \"fill\")\n",
|
|
"\t\t}\n",
|
|
"\t}\n",
|
|
"\tfunction search_prompt() {\n",
|
|
"\t\tif (!searching) {\n",
|
|
"\t\t\tvar term = prompt(\"Enter a search term (regexp \" +\n",
|
|
"\t\t\t \"allowed, eg: ^ext4_)\", \"\");\n",
|
|
"\t\t\tif (term != null) {\n",
|
|
"\t\t\t\tsearch(term)\n",
|
|
"\t\t\t}\n",
|
|
"\t\t} else {\n",
|
|
"\t\t\treset_search();\n",
|
|
"\t\t\tsearching = 0;\n",
|
|
"\t\t\tsearchbtn.classList.remove(\"show\");\n",
|
|
"\t\t\tsearchbtn.firstChild.nodeValue = \"Search\"\n",
|
|
"\t\t\tmatchedtxt.classList.add(\"hide\");\n",
|
|
"\t\t\tmatchedtxt.firstChild.nodeValue = \"\"\n",
|
|
"\t\t}\n",
|
|
"\t}\n",
|
|
"\tfunction search(term) {\n",
|
|
"\t\tvar re = new RegExp(term);\n",
|
|
"\t\tvar el = document.getElementById(\"frames\").children;\n",
|
|
"\t\tvar matches = new Object();\n",
|
|
"\t\tvar maxwidth = 0;\n",
|
|
"\t\tfor (var i = 0; i < el.length; i++) {\n",
|
|
"\t\t\tvar e = el[i];\n",
|
|
"\t\t\tvar func = g_to_func(e);\n",
|
|
"\t\t\tvar rect = find_child(e, \"rect\");\n",
|
|
"\t\t\tif (func == null || rect == null)\n",
|
|
"\t\t\t\tcontinue;\n",
|
|
"\n",
|
|
"\t\t\t// Save max width. Only works as we have a root frame\n",
|
|
"\t\t\tvar w = parseFloat(rect.attributes.width.value);\n",
|
|
"\t\t\tif (w > maxwidth)\n",
|
|
"\t\t\t\tmaxwidth = w;\n",
|
|
"\n",
|
|
"\t\t\tif (func.match(re)) {\n",
|
|
"\t\t\t\t// highlight\n",
|
|
"\t\t\t\tvar x = parseFloat(rect.attributes.x.value);\n",
|
|
"\t\t\t\torig_save(rect, \"fill\");\n",
|
|
"\t\t\t\trect.attributes.fill.value = \"rgb(230,0,230)\";\n",
|
|
"\n",
|
|
"\t\t\t\t// remember matches\n",
|
|
"\t\t\t\tif (matches[x] == undefined) {\n",
|
|
"\t\t\t\t\tmatches[x] = w;\n",
|
|
"\t\t\t\t} else {\n",
|
|
"\t\t\t\t\tif (w > matches[x]) {\n",
|
|
"\t\t\t\t\t\t// overwrite with parent\n",
|
|
"\t\t\t\t\t\tmatches[x] = w;\n",
|
|
"\t\t\t\t\t}\n",
|
|
"\t\t\t\t}\n",
|
|
"\t\t\t\tsearching = 1;\n",
|
|
"\t\t\t}\n",
|
|
"\t\t}\n",
|
|
"\t\tif (!searching)\n",
|
|
"\t\t\treturn;\n",
|
|
"\n",
|
|
"\t\tsearchbtn.classList.add(\"show\");\n",
|
|
"\t\tsearchbtn.firstChild.nodeValue = \"Reset Search\";\n",
|
|
"\n",
|
|
"\t\t// calculate percent matched, excluding vertical overlap\n",
|
|
"\t\tvar count = 0;\n",
|
|
"\t\tvar lastx = -1;\n",
|
|
"\t\tvar lastw = 0;\n",
|
|
"\t\tvar keys = Array();\n",
|
|
"\t\tfor (k in matches) {\n",
|
|
"\t\t\tif (matches.hasOwnProperty(k))\n",
|
|
"\t\t\t\tkeys.push(k);\n",
|
|
"\t\t}\n",
|
|
"\t\t// sort the matched frames by their x location\n",
|
|
"\t\t// ascending, then width descending\n",
|
|
"\t\tkeys.sort(function(a, b){\n",
|
|
"\t\t\treturn a - b;\n",
|
|
"\t\t});\n",
|
|
"\t\t// Step through frames saving only the biggest bottom-up frames\n",
|
|
"\t\t// thanks to the sort order. This relies on the tree property\n",
|
|
"\t\t// where children are always smaller than their parents.\n",
|
|
"\t\tvar fudge = 0.0001;\t// JavaScript floating point\n",
|
|
"\t\tfor (var k in keys) {\n",
|
|
"\t\t\tvar x = parseFloat(keys[k]);\n",
|
|
"\t\t\tvar w = matches[keys[k]];\n",
|
|
"\t\t\tif (x >= lastx + lastw - fudge) {\n",
|
|
"\t\t\t\tcount += w;\n",
|
|
"\t\t\t\tlastx = x;\n",
|
|
"\t\t\t\tlastw = w;\n",
|
|
"\t\t\t}\n",
|
|
"\t\t}\n",
|
|
"\t\t// display matched percent\n",
|
|
"\t\tmatchedtxt.classList.remove(\"hide\");\n",
|
|
"\t\tvar pct = 100 * count / maxwidth;\n",
|
|
"\t\tif (pct != 100) pct = pct.toFixed(1)\n",
|
|
"\t\tmatchedtxt.firstChild.nodeValue = \"Matched: \" + pct + \"%\";\n",
|
|
"\t}\n",
|
|
"]]>\n",
|
|
"</script>\n",
|
|
"<rect x=\"0.0\" y=\"0\" width=\"1200.0\" height=\"230.0\" fill=\"url(#background)\" />\n",
|
|
"<text id=\"title\" x=\"600.00\" y=\"24\" >Icicle Graph</text>\n",
|
|
"<text id=\"details\" x=\"10.00\" y=\"213\" > </text>\n",
|
|
"<text id=\"unzoom\" x=\"10.00\" y=\"24\" class=\"hide\">Reset Zoom</text>\n",
|
|
"<text id=\"search\" x=\"1090.00\" y=\"24\" >Search</text>\n",
|
|
"<text id=\"matched\" x=\"1090.00\" y=\"213\" > </text>\n",
|
|
"<g id=\"frames\">\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/polars/lazyframe/frame.py:1683:collect (27,454 samples, 84.56%)</title><rect x=\"168.5\" y=\"100\" width=\"997.8\" height=\"15.0\" fill=\"rgb(251,171,36)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"171.50\" y=\"110.5\" >/home/marius/anaconda3/lib/python3.11/site-packages/polars/lazyframe/frame.py:1683:collect</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/ipykernel/iostream.py:532:_schedule_flush (65 samples, 0.20%)</title><rect x=\"1173.0\" y=\"132\" width=\"2.4\" height=\"15.0\" fill=\"rgb(216,143,41)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1175.99\" y=\"142.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<built-in method posix.stat> (278 samples, 0.86%)</title><rect x=\"63.6\" y=\"164\" width=\"10.1\" height=\"15.0\" fill=\"rgb(220,88,29)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"66.61\" y=\"174.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/polars/_utils/parse_expr_input.py:50:_parse_positional_inputs (36 samples, 0.11%)</title><rect x=\"167.2\" y=\"148\" width=\"1.3\" height=\"15.0\" fill=\"rgb(239,54,52)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"170.19\" y=\"158.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/zmq/sugar/socket.py:543:send (40 samples, 0.12%)</title><rect x=\"1173.9\" y=\"164\" width=\"1.5\" height=\"15.0\" fill=\"rgb(223,40,30)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1176.90\" y=\"174.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/polars/_utils/parse_expr_input.py:20:parse_as_list_of_expressions (38 samples, 0.12%)</title><rect x=\"167.1\" y=\"132\" width=\"1.4\" height=\"15.0\" fill=\"rgb(221,67,37)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"170.12\" y=\"142.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/polars/_utils/various.py:182:normalize_filepath (147 samples, 0.45%)</title><rect x=\"22.4\" y=\"148\" width=\"5.3\" height=\"15.0\" fill=\"rgb(224,167,33)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"25.36\" y=\"158.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<built-in method builtins.print> (529 samples, 1.63%)</title><rect x=\"1170.8\" y=\"100\" width=\"19.2\" height=\"15.0\" fill=\"rgb(240,155,26)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1173.77\" y=\"110.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/polars/lazyframe/frame.py:1683:collect (599 samples, 1.84%)</title><rect x=\"143.9\" y=\"116\" width=\"21.8\" height=\"15.0\" fill=\"rgb(237,175,44)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"146.93\" y=\"126.5\" >/..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/tmp/ipykernel_67611/2832609216.py:1:test_polars (32,221 samples, 99.24%)</title><rect x=\"18.9\" y=\"84\" width=\"1171.1\" height=\"15.0\" fill=\"rgb(232,3,23)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"21.94\" y=\"94.5\" >/tmp/ipykernel_67611/2832609216.py:1:test_polars</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/tmp/ipykernel_67611/2832609216.py:9:<listcomp> (123 samples, 0.38%)</title><rect x=\"1166.3\" y=\"100\" width=\"4.5\" height=\"15.0\" fill=\"rgb(250,203,15)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1169.30\" y=\"110.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/polars/io/ndjson.py:86:scan_ndjson (1,108 samples, 3.41%)</title><rect x=\"22.0\" y=\"132\" width=\"40.3\" height=\"15.0\" fill=\"rgb(253,94,26)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"24.99\" y=\"142.5\" >/ho..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title><frozen genericpath>:16:exists (140 samples, 0.43%)</title><rect x=\"22.6\" y=\"164\" width=\"5.1\" height=\"15.0\" fill=\"rgb(233,117,35)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"25.61\" y=\"174.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<method 'collect' of 'builtins.PyLazyFrame' objects> (593 samples, 1.83%)</title><rect x=\"144.1\" y=\"132\" width=\"21.6\" height=\"15.0\" fill=\"rgb(239,189,31)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"147.15\" y=\"142.5\" >~..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<method 'collect' of 'builtins.PyLazyFrame' objects> (27,400 samples, 84.39%)</title><rect x=\"170.5\" y=\"116\" width=\"995.8\" height=\"15.0\" fill=\"rgb(229,84,3)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"173.46\" y=\"126.5\" >~:0:<method 'collect' of 'builtins.PyLazyFrame' objects></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/ipykernel/iostream.py:243:schedule (61 samples, 0.19%)</title><rect x=\"1173.1\" y=\"148\" width=\"2.3\" height=\"15.0\" fill=\"rgb(235,223,6)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1176.14\" y=\"158.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>all (32,467 samples, 100%)</title><rect x=\"10.0\" y=\"36\" width=\"1180.0\" height=\"15.0\" fill=\"rgb(223,13,53)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"13.00\" y=\"46.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<built-in method posix.stat> (139 samples, 0.43%)</title><rect x=\"22.6\" y=\"180\" width=\"5.1\" height=\"15.0\" fill=\"rgb(209,190,18)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"25.65\" y=\"190.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<built-in method new_from_ndjson> (951 samples, 2.93%)</title><rect x=\"27.7\" y=\"148\" width=\"34.6\" height=\"15.0\" fill=\"rgb(229,129,15)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"30.70\" y=\"158.5\" >~:..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/ipykernel/iostream.py:610:write (114 samples, 0.35%)</title><rect x=\"1171.2\" y=\"116\" width=\"4.2\" height=\"15.0\" fill=\"rgb(218,81,38)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1174.21\" y=\"126.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/polars/_utils/deprecation.py:130:wrapper (1,112 samples, 3.43%)</title><rect x=\"21.8\" y=\"116\" width=\"40.5\" height=\"15.0\" fill=\"rgb(251,10,25)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"24.85\" y=\"126.5\" >/ho..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/polars/functions/col.py:20:_create_col (39 samples, 0.12%)</title><rect x=\"1169.4\" y=\"132\" width=\"1.4\" height=\"15.0\" fill=\"rgb(235,110,1)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1172.36\" y=\"142.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/polars/dataframe/frame.py:8164:with_columns (706 samples, 2.17%)</title><rect x=\"142.8\" y=\"100\" width=\"25.7\" height=\"15.0\" fill=\"rgb(219,171,2)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"145.84\" y=\"110.5\" >/..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/polars/functions/col.py:145:__new__ (46 samples, 0.14%)</title><rect x=\"1169.1\" y=\"116\" width=\"1.7\" height=\"15.0\" fill=\"rgb(219,77,30)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1172.10\" y=\"126.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/polars/_utils/various.py:182:normalize_filepath (294 samples, 0.91%)</title><rect x=\"63.0\" y=\"132\" width=\"10.7\" height=\"15.0\" fill=\"rgb(244,215,27)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"66.03\" y=\"142.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/polars/_utils/deprecation.py:130:wrapper (3,334 samples, 10.27%)</title><rect x=\"21.7\" y=\"100\" width=\"121.1\" height=\"15.0\" fill=\"rgb(218,119,5)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"24.67\" y=\"110.5\" >/home/marius/an..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<built-in method new_from_ndjson> (1,902 samples, 5.86%)</title><rect x=\"73.7\" y=\"132\" width=\"69.1\" height=\"15.0\" fill=\"rgb(249,154,53)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"76.71\" y=\"142.5\" >~:0:<bu..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/polars/dataframe/frame.py:980:__str__ (403 samples, 1.24%)</title><rect x=\"1175.4\" y=\"116\" width=\"14.6\" height=\"15.0\" fill=\"rgb(248,125,7)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1178.35\" y=\"126.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title><frozen genericpath>:16:exists (280 samples, 0.86%)</title><rect x=\"63.5\" y=\"148\" width=\"10.2\" height=\"15.0\" fill=\"rgb(240,204,51)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"66.54\" y=\"158.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/polars/lazyframe/frame.py:4006:with_columns (77 samples, 0.24%)</title><rect x=\"165.7\" y=\"116\" width=\"2.8\" height=\"15.0\" fill=\"rgb(207,1,52)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"168.70\" y=\"126.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title><string>:1:<module> (32,424 samples, 99.87%)</title><rect x=\"11.6\" y=\"68\" width=\"1178.4\" height=\"15.0\" fill=\"rgb(245,200,44)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"14.56\" y=\"78.5\" ><string>:1:<module></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<built-in method builtins.exec> (32,467 samples, 100.00%)</title><rect x=\"10.0\" y=\"52\" width=\"1180.0\" height=\"15.0\" fill=\"rgb(245,159,10)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"13.00\" y=\"62.5\" >~:0:<built-in method builtins.exec></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/polars/expr/expr.py:1917:cast (50 samples, 0.15%)</title><rect x=\"1167.3\" y=\"116\" width=\"1.8\" height=\"15.0\" fill=\"rgb(207,186,29)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1170.28\" y=\"126.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/polars/io/ndjson.py:86:scan_ndjson (2,217 samples, 6.83%)</title><rect x=\"62.3\" y=\"116\" width=\"80.5\" height=\"15.0\" fill=\"rgb(249,64,17)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"65.26\" y=\"126.5\" >/home/mar..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<method 'as_str' of 'builtins.PyDataFrame' objects> (399 samples, 1.23%)</title><rect x=\"1175.5\" y=\"132\" width=\"14.5\" height=\"15.0\" fill=\"rgb(210,100,53)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1178.50\" y=\"142.5\" ></text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"execution_count": 48,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"%%flame -q --inverted\n",
|
|
"test_polars()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 49,
|
|
"id": "87f043b9-6cfa-4c3b-b550-25818e29bd45",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"shape: (8_000, 7)\n",
|
|
"┌──────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┐\n",
|
|
"│ @timestamp ┆ host.hostna ┆ host.ip ┆ log.level ┆ winlog.even ┆ winlog.task ┆ message │\n",
|
|
"│ --- ┆ me ┆ --- ┆ --- ┆ t_id ┆ --- ┆ --- │\n",
|
|
"│ str ┆ --- ┆ str ┆ str ┆ --- ┆ str ┆ str │\n",
|
|
"│ ┆ str ┆ ┆ ┆ i64 ┆ ┆ │\n",
|
|
"╞══════════════╪═════════════╪═════════════╪═════════════╪═════════════╪═════════════╪═════════════╡\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 13 ┆ Registry ┆ Registry │\n",
|
|
"│ 5:57:18.471Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ value set ┆ value set: │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ (rule: ┆ RuleName: … │\n",
|
|
"│ ┆ ┆ ┆ ┆ ┆ Regi… ┆ │\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 13 ┆ Registry ┆ Registry │\n",
|
|
"│ 5:57:18.471Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ value set ┆ value set: │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ (rule: ┆ RuleName: … │\n",
|
|
"│ ┆ ┆ ┆ ┆ ┆ Regi… ┆ │\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 13 ┆ Registry ┆ Registry │\n",
|
|
"│ 5:57:18.471Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ value set ┆ value set: │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ (rule: ┆ RuleName: … │\n",
|
|
"│ ┆ ┆ ┆ ┆ ┆ Regi… ┆ │\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 13 ┆ Registry ┆ Registry │\n",
|
|
"│ 5:57:18.471Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ value set ┆ value set: │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ (rule: ┆ RuleName: … │\n",
|
|
"│ ┆ ┆ ┆ ┆ ┆ Regi… ┆ │\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 13 ┆ Registry ┆ Registry │\n",
|
|
"│ 5:57:18.471Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ value set ┆ value set: │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ (rule: ┆ RuleName: … │\n",
|
|
"│ ┆ ┆ ┆ ┆ ┆ Regi… ┆ │\n",
|
|
"│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 4663 ┆ Removable ┆ An attempt │\n",
|
|
"│ 6:10:07.128Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ Storage ┆ was made to │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ ┆ access … │\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 4663 ┆ Removable ┆ An attempt │\n",
|
|
"│ 6:10:07.136Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ Storage ┆ was made to │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ ┆ access … │\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 4663 ┆ Removable ┆ An attempt │\n",
|
|
"│ 6:10:07.136Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ Storage ┆ was made to │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ ┆ access … │\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 4663 ┆ Removable ┆ An attempt │\n",
|
|
"│ 6:10:07.149Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ Storage ┆ was made to │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ ┆ access … │\n",
|
|
"│ 2024-05-15T1 ┆ win10 ┆ fe80::24b4: ┆ information ┆ 4663 ┆ Removable ┆ An attempt │\n",
|
|
"│ 6:10:07.149Z ┆ ┆ 3691:44a6:3 ┆ ┆ ┆ Storage ┆ was made to │\n",
|
|
"│ ┆ ┆ 8a1 ┆ ┆ ┆ ┆ access … │\n",
|
|
"└──────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┘\n",
|
|
"Pandas DataFarme number of rows: 8000\n",
|
|
"Polars DataFrame memory usage: 4.76 MB\n",
|
|
" "
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
" 256 function calls (253 primitive calls) in 0.020 seconds\n",
|
|
"\n",
|
|
" Ordered by: internal time\n",
|
|
"\n",
|
|
" ncalls tottime percall cumtime percall filename:lineno(function)\n",
|
|
" 2 0.014 0.007 0.014 0.007 {method 'collect' of 'builtins.PyLazyFrame' objects}\n",
|
|
" 1 0.003 0.003 0.003 0.003 {built-in method new_from_ndjson}\n",
|
|
" 2 0.001 0.001 0.001 0.001 {built-in method posix.stat}\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'as_str' of 'builtins.PyDataFrame' objects}\n",
|
|
" 1 0.000 0.000 0.020 0.020 <string>:1(<module>)\n",
|
|
" 1 0.000 0.000 0.020 0.020 2832609216.py:1(test_polars)\n",
|
|
" 1 0.000 0.000 0.000 0.000 socket.py:543(send)\n",
|
|
" 2 0.000 0.000 0.000 0.000 wrap.py:12(wrap_df)\n",
|
|
" 6 0.000 0.000 0.000 0.000 iostream.py:610(write)\n",
|
|
" 1 0.000 0.000 0.020 0.020 {built-in method builtins.exec}\n",
|
|
" 2 0.000 0.000 0.014 0.007 frame.py:1683(collect)\n",
|
|
" 1 0.000 0.000 0.004 0.004 ndjson.py:86(scan_ndjson)\n",
|
|
" 1 0.000 0.000 0.000 0.000 2832609216.py:9(<listcomp>)\n",
|
|
" 2/1 0.000 0.000 0.004 0.004 deprecation.py:130(wrapper)\n",
|
|
" 2 0.000 0.000 0.000 0.000 wrap.py:16(wrap_ldf)\n",
|
|
" 7 0.000 0.000 0.000 0.000 expr.py:1917(cast)\n",
|
|
" 1 0.000 0.000 0.001 0.001 various.py:182(normalize_filepath)\n",
|
|
" 41/39 0.000 0.000 0.000 0.000 {built-in method builtins.isinstance}\n",
|
|
" 7 0.000 0.000 0.000 0.000 col.py:20(_create_col)\n",
|
|
" 3 0.000 0.000 0.001 0.000 {built-in method builtins.print}\n",
|
|
" 1 0.000 0.000 0.000 0.000 frame.py:4006(with_columns)\n",
|
|
" 2 0.000 0.000 0.000 0.000 {method 'optimization_toggle' of 'builtins.PyLazyFrame' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 frame.py:7998(lazy)\n",
|
|
" 3 0.000 0.000 0.000 0.000 frame.py:316(_from_pyldf)\n",
|
|
" 1 0.000 0.000 0.001 0.001 frame.py:8164(with_columns)\n",
|
|
" 7 0.000 0.000 0.000 0.000 {method 'cast' of 'builtins.PyExpr' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 iostream.py:243(schedule)\n",
|
|
" 7 0.000 0.000 0.000 0.000 convert.py:388(py_type_to_dtype)\n",
|
|
" 19 0.000 0.000 0.000 0.000 {built-in method __new__ of type object at 0x860f60}\n",
|
|
" 6 0.000 0.000 0.000 0.000 iostream.py:505(_is_master_process)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'with_columns' of 'builtins.PyLazyFrame' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 <frozen os>:674(__getitem__)\n",
|
|
" 7 0.000 0.000 0.000 0.000 {col}\n",
|
|
" 7 0.000 0.000 0.000 0.000 col.py:145(__new__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 <frozen genericpath>:39(isdir)\n",
|
|
" 7 0.000 0.000 0.000 0.000 wrap.py:24(wrap_expr)\n",
|
|
" 1 0.000 0.000 0.000 0.000 <frozen posixpath>:229(expanduser)\n",
|
|
" 6 0.000 0.000 0.000 0.000 {built-in method posix.getpid}\n",
|
|
" 14 0.000 0.000 0.000 0.000 expr.py:131(_from_pyexpr)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'lazy' of 'builtins.PyDataFrame' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 typing.py:1579(__subclasscheck__)\n",
|
|
" 2 0.000 0.000 0.000 0.000 frame.py:439(_from_pydf)\n",
|
|
" 1 0.000 0.000 0.000 0.000 parse_expr_input.py:56(<listcomp>)\n",
|
|
" 7 0.000 0.000 0.000 0.000 convert.py:146(is_polars_dtype)\n",
|
|
" 1 0.000 0.000 0.000 0.000 threading.py:1185(is_alive)\n",
|
|
" 1 0.000 0.000 0.001 0.001 <frozen genericpath>:16(exists)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'estimated_size' of 'builtins.PyDataFrame' objects}\n",
|
|
" 6 0.000 0.000 0.000 0.000 iostream.py:532(_schedule_flush)\n",
|
|
" 1 0.000 0.000 0.000 0.000 frame.py:980(__str__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 parse_expr_input.py:59(_parse_inputs_as_iterable)\n",
|
|
" 1 0.000 0.000 0.000 0.000 <frozen _collections_abc>:771(get)\n",
|
|
" 1 0.000 0.000 0.000 0.000 threading.py:1118(_wait_for_tstate_lock)\n",
|
|
" 7 0.000 0.000 0.000 0.000 parse_expr_input.py:85(parse_as_expression)\n",
|
|
" 1 0.000 0.000 0.000 0.000 frame.py:3600(estimated_size)\n",
|
|
" 1 0.000 0.000 0.000 0.000 parse_expr_input.py:50(_parse_positional_inputs)\n",
|
|
" 1 0.000 0.000 0.000 0.000 <frozen os>:756(encode)\n",
|
|
" 1 0.000 0.000 0.000 0.000 frame.py:591(shape)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {built-in method builtins.issubclass}\n",
|
|
" 1 0.000 0.000 0.000 0.000 iostream.py:127(_event_pipe)\n",
|
|
" 1 0.000 0.000 0.000 0.000 parse_expr_input.py:72(_is_iterable)\n",
|
|
" 1 0.000 0.000 0.000 0.000 parse_expr_input.py:20(parse_as_list_of_expressions)\n",
|
|
" 1 0.000 0.000 0.000 0.000 typing.py:1304(__instancecheck__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 <frozen abc>:121(__subclasscheck__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {built-in method _abc._abc_subclasscheck}\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'shape' of 'builtins.PyDataFrame' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'acquire' of '_thread.lock' objects}\n",
|
|
" 7 0.000 0.000 0.000 0.000 {built-in method builtins.len}\n",
|
|
" 6 0.000 0.000 0.000 0.000 {method 'write' of '_io.StringIO' objects}\n",
|
|
" 6 0.000 0.000 0.000 0.000 {method '__exit__' of '_thread.RLock' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 {built-in method _stat.S_ISDIR}\n",
|
|
" 1 0.000 0.000 0.000 0.000 various.py:210(scale_bytes)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}\n",
|
|
" 2 0.000 0.000 0.000 0.000 {method 'get' of 'dict' objects}\n",
|
|
" 2 0.000 0.000 0.000 0.000 deprecation.py:143(_rename_keyword_argument)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'encode' of 'str' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'items' of 'dict' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 _utils.py:58(parse_row_index_args)\n",
|
|
" 1 0.000 0.000 0.000 0.000 threading.py:568(is_set)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'append' of 'collections.deque' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 {built-in method posix.fspath}"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"%%prun\n",
|
|
"test_polars()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 50,
|
|
"id": "547f7253-cd62-44c6-8d7a-840dab2dbbbd",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def test_pandas():\n",
|
|
" # Load the JSON file into a Pandas DataFrame\n",
|
|
" pd_df = pd.read_json(file_path, lines=True, dtype=pandas_schema)\n",
|
|
" pd_memory_usage = pd_df.memory_usage(deep=True).sum()\n",
|
|
"\n",
|
|
" # Get the number of rows in the Pandas DataFrame\n",
|
|
" num_rows_pandas = pd_df.shape[0]\n",
|
|
"\n",
|
|
" print(pd_df)\n",
|
|
"\n",
|
|
" print(f\"Pandas DataFarme number of rows: {num_rows_pandas}\")\n",
|
|
" print(f\"Pandas DataFrame memory usage: {pd_memory_usage / (1024 ** 2):.2f} MB\") \n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 51,
|
|
"id": "50230892-0a0e-4144-a17e-27d2714de1e8",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
" @timestamp host.hostname host.ip \\\n",
|
|
"0 2024-05-15T15:57:18.471Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"1 2024-05-15T15:57:18.471Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"2 2024-05-15T15:57:18.471Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"3 2024-05-15T15:57:18.471Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"4 2024-05-15T15:57:18.471Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"... ... ... ... \n",
|
|
"7995 2024-05-15T16:10:07.128Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"7996 2024-05-15T16:10:07.136Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"7997 2024-05-15T16:10:07.136Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"7998 2024-05-15T16:10:07.149Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"7999 2024-05-15T16:10:07.149Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"\n",
|
|
" log.level winlog.event_id winlog.task \\\n",
|
|
"0 information 13 Registry value set (rule: RegistryEvent) \n",
|
|
"1 information 13 Registry value set (rule: RegistryEvent) \n",
|
|
"2 information 13 Registry value set (rule: RegistryEvent) \n",
|
|
"3 information 13 Registry value set (rule: RegistryEvent) \n",
|
|
"4 information 13 Registry value set (rule: RegistryEvent) \n",
|
|
"... ... ... ... \n",
|
|
"7995 information 4663 Removable Storage \n",
|
|
"7996 information 4663 Removable Storage \n",
|
|
"7997 information 4663 Removable Storage \n",
|
|
"7998 information 4663 Removable Storage \n",
|
|
"7999 information 4663 Removable Storage \n",
|
|
"\n",
|
|
" message \n",
|
|
"0 Registry value set:\\nRuleName: InvDB-Ver\\nEven... \n",
|
|
"1 Registry value set:\\nRuleName: InvDB-Path\\nEve... \n",
|
|
"2 Registry value set:\\nRuleName: InvDB-Pub\\nEven... \n",
|
|
"3 Registry value set:\\nRuleName: InvDB-CompileTi... \n",
|
|
"4 Registry value set:\\nRuleName: InvDB-Ver\\nEven... \n",
|
|
"... ... \n",
|
|
"7995 An attempt was made to access an object.\\n\\nSu... \n",
|
|
"7996 An attempt was made to access an object.\\n\\nSu... \n",
|
|
"7997 An attempt was made to access an object.\\n\\nSu... \n",
|
|
"7998 An attempt was made to access an object.\\n\\nSu... \n",
|
|
"7999 An attempt was made to access an object.\\n\\nSu... \n",
|
|
"\n",
|
|
"[8000 rows x 7 columns]\n",
|
|
"Pandas DataFarme number of rows: 8000\n",
|
|
"Pandas DataFrame memory usage: 7.56 MB\n",
|
|
" "
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<?xml version=\"1.0\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<svg version=\"1.1\" width=\"1200\" height=\"406\" onload=\"init(evt)\" viewBox=\"0 0 1200 406\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<!-- Flame graph stack visualization. See https://github.com/brendangregg/FlameGraph for latest version, and http://www.brendangregg.com/flamegraphs.html for examples. -->\n",
|
|
"<!-- NOTES: -->\n",
|
|
"<defs>\n",
|
|
"\t<linearGradient id=\"background\" y1=\"0\" y2=\"1\" x1=\"0\" x2=\"0\" >\n",
|
|
"\t\t<stop stop-color=\"#eeeeee\" offset=\"5%\" />\n",
|
|
"\t\t<stop stop-color=\"#eeeeb0\" offset=\"95%\" />\n",
|
|
"\t</linearGradient>\n",
|
|
"</defs>\n",
|
|
"<style type=\"text/css\">\n",
|
|
"\ttext { font-family:Verdana; font-size:12px; fill:rgb(0,0,0); }\n",
|
|
"\t#search { opacity:0.1; cursor:pointer; }\n",
|
|
"\t#search:hover, #search.show { opacity:1; }\n",
|
|
"\t#subtitle { text-anchor:middle; font-color:rgb(160,160,160); }\n",
|
|
"\t#title { text-anchor:middle; font-size:17px}\n",
|
|
"\t#unzoom { cursor:pointer; }\n",
|
|
"\t#frames > *:hover { stroke:black; stroke-width:0.5; cursor:pointer; }\n",
|
|
"\t.hide { display:none; }\n",
|
|
"\t.parent { opacity:0.5; }\n",
|
|
"</style>\n",
|
|
"<script type=\"text/ecmascript\">\n",
|
|
"<![CDATA[\n",
|
|
"\t\"use strict\";\n",
|
|
"\tvar details, searchbtn, unzoombtn, matchedtxt, svg, searching;\n",
|
|
"\tfunction init(evt) {\n",
|
|
"\t\tdetails = document.getElementById(\"details\").firstChild;\n",
|
|
"\t\tsearchbtn = document.getElementById(\"search\");\n",
|
|
"\t\tunzoombtn = document.getElementById(\"unzoom\");\n",
|
|
"\t\tmatchedtxt = document.getElementById(\"matched\");\n",
|
|
"\t\tsvg = document.getElementsByTagName(\"svg\")[0];\n",
|
|
"\t\tsearching = 0;\n",
|
|
"\t}\n",
|
|
"\n",
|
|
"\twindow.addEventListener(\"click\", function(e) {\n",
|
|
"\t\tvar target = find_group(e.target);\n",
|
|
"\t\tif (target) {\n",
|
|
"\t\t\tif (target.nodeName == \"a\") {\n",
|
|
"\t\t\t\tif (e.ctrlKey === false) return;\n",
|
|
"\t\t\t\te.preventDefault();\n",
|
|
"\t\t\t}\n",
|
|
"\t\t\tif (target.classList.contains(\"parent\")) unzoom();\n",
|
|
"\t\t\tzoom(target);\n",
|
|
"\t\t}\n",
|
|
"\t\telse if (e.target.id == \"unzoom\") unzoom();\n",
|
|
"\t\telse if (e.target.id == \"search\") search_prompt();\n",
|
|
"\t}, false)\n",
|
|
"\n",
|
|
"\t// mouse-over for info\n",
|
|
"\t// show\n",
|
|
"\twindow.addEventListener(\"mouseover\", function(e) {\n",
|
|
"\t\tvar target = find_group(e.target);\n",
|
|
"\t\tif (target) details.nodeValue = \"Function: \" + g_to_text(target);\n",
|
|
"\t}, false)\n",
|
|
"\n",
|
|
"\t// clear\n",
|
|
"\twindow.addEventListener(\"mouseout\", function(e) {\n",
|
|
"\t\tvar target = find_group(e.target);\n",
|
|
"\t\tif (target) details.nodeValue = ' ';\n",
|
|
"\t}, false)\n",
|
|
"\n",
|
|
"\t// ctrl-F for search\n",
|
|
"\twindow.addEventListener(\"keydown\",function (e) {\n",
|
|
"\t\tif (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)) {\n",
|
|
"\t\t\te.preventDefault();\n",
|
|
"\t\t\tsearch_prompt();\n",
|
|
"\t\t}\n",
|
|
"\t}, false)\n",
|
|
"\n",
|
|
"\t// functions\n",
|
|
"\tfunction find_child(node, selector) {\n",
|
|
"\t\tvar children = node.querySelectorAll(selector);\n",
|
|
"\t\tif (children.length) return children[0];\n",
|
|
"\t\treturn;\n",
|
|
"\t}\n",
|
|
"\tfunction find_group(node) {\n",
|
|
"\t\tvar parent = node.parentElement;\n",
|
|
"\t\tif (!parent) return;\n",
|
|
"\t\tif (parent.id == \"frames\") return node;\n",
|
|
"\t\treturn find_group(parent);\n",
|
|
"\t}\n",
|
|
"\tfunction orig_save(e, attr, val) {\n",
|
|
"\t\tif (e.attributes[\"_orig_\" + attr] != undefined) return;\n",
|
|
"\t\tif (e.attributes[attr] == undefined) return;\n",
|
|
"\t\tif (val == undefined) val = e.attributes[attr].value;\n",
|
|
"\t\te.setAttribute(\"_orig_\" + attr, val);\n",
|
|
"\t}\n",
|
|
"\tfunction orig_load(e, attr) {\n",
|
|
"\t\tif (e.attributes[\"_orig_\"+attr] == undefined) return;\n",
|
|
"\t\te.attributes[attr].value = e.attributes[\"_orig_\" + attr].value;\n",
|
|
"\t\te.removeAttribute(\"_orig_\"+attr);\n",
|
|
"\t}\n",
|
|
"\tfunction g_to_text(e) {\n",
|
|
"\t\tvar text = find_child(e, \"title\").firstChild.nodeValue;\n",
|
|
"\t\treturn (text)\n",
|
|
"\t}\n",
|
|
"\tfunction g_to_func(e) {\n",
|
|
"\t\tvar func = g_to_text(e);\n",
|
|
"\t\t// if there's any manipulation we want to do to the function\n",
|
|
"\t\t// name before it's searched, do it here before returning.\n",
|
|
"\t\treturn (func);\n",
|
|
"\t}\n",
|
|
"\tfunction update_text(e) {\n",
|
|
"\t\tvar r = find_child(e, \"rect\");\n",
|
|
"\t\tvar t = find_child(e, \"text\");\n",
|
|
"\t\tvar w = parseFloat(r.attributes.width.value) -3;\n",
|
|
"\t\tvar txt = find_child(e, \"title\").textContent.replace(/\\([^(]*\\)$/,\"\");\n",
|
|
"\t\tt.attributes.x.value = parseFloat(r.attributes.x.value) + 3;\n",
|
|
"\n",
|
|
"\t\t// Smaller than this size won't fit anything\n",
|
|
"\t\tif (w < 2 * 12 * 0.59) {\n",
|
|
"\t\t\tt.textContent = \"\";\n",
|
|
"\t\t\treturn;\n",
|
|
"\t\t}\n",
|
|
"\n",
|
|
"\t\tt.textContent = txt;\n",
|
|
"\t\t// Fit in full text width\n",
|
|
"\t\tif (/^ *$/.test(txt) || t.getSubStringLength(0, txt.length) < w)\n",
|
|
"\t\t\treturn;\n",
|
|
"\n",
|
|
"\t\tfor (var x = txt.length - 2; x > 0; x--) {\n",
|
|
"\t\t\tif (t.getSubStringLength(0, x + 2) <= w) {\n",
|
|
"\t\t\t\tt.textContent = txt.substring(0, x) + \"..\";\n",
|
|
"\t\t\t\treturn;\n",
|
|
"\t\t\t}\n",
|
|
"\t\t}\n",
|
|
"\t\tt.textContent = \"\";\n",
|
|
"\t}\n",
|
|
"\n",
|
|
"\t// zoom\n",
|
|
"\tfunction zoom_reset(e) {\n",
|
|
"\t\tif (e.attributes != undefined) {\n",
|
|
"\t\t\torig_load(e, \"x\");\n",
|
|
"\t\t\torig_load(e, \"width\");\n",
|
|
"\t\t}\n",
|
|
"\t\tif (e.childNodes == undefined) return;\n",
|
|
"\t\tfor (var i = 0, c = e.childNodes; i < c.length; i++) {\n",
|
|
"\t\t\tzoom_reset(c[i]);\n",
|
|
"\t\t}\n",
|
|
"\t}\n",
|
|
"\tfunction zoom_child(e, x, ratio) {\n",
|
|
"\t\tif (e.attributes != undefined) {\n",
|
|
"\t\t\tif (e.attributes.x != undefined) {\n",
|
|
"\t\t\t\torig_save(e, \"x\");\n",
|
|
"\t\t\t\te.attributes.x.value = (parseFloat(e.attributes.x.value) - x - 10) * ratio + 10;\n",
|
|
"\t\t\t\tif (e.tagName == \"text\")\n",
|
|
"\t\t\t\t\te.attributes.x.value = find_child(e.parentNode, \"rect[x]\").attributes.x.value + 3;\n",
|
|
"\t\t\t}\n",
|
|
"\t\t\tif (e.attributes.width != undefined) {\n",
|
|
"\t\t\t\torig_save(e, \"width\");\n",
|
|
"\t\t\t\te.attributes.width.value = parseFloat(e.attributes.width.value) * ratio;\n",
|
|
"\t\t\t}\n",
|
|
"\t\t}\n",
|
|
"\n",
|
|
"\t\tif (e.childNodes == undefined) return;\n",
|
|
"\t\tfor (var i = 0, c = e.childNodes; i < c.length; i++) {\n",
|
|
"\t\t\tzoom_child(c[i], x - 10, ratio);\n",
|
|
"\t\t}\n",
|
|
"\t}\n",
|
|
"\tfunction zoom_parent(e) {\n",
|
|
"\t\tif (e.attributes) {\n",
|
|
"\t\t\tif (e.attributes.x != undefined) {\n",
|
|
"\t\t\t\torig_save(e, \"x\");\n",
|
|
"\t\t\t\te.attributes.x.value = 10;\n",
|
|
"\t\t\t}\n",
|
|
"\t\t\tif (e.attributes.width != undefined) {\n",
|
|
"\t\t\t\torig_save(e, \"width\");\n",
|
|
"\t\t\t\te.attributes.width.value = parseInt(svg.width.baseVal.value) - (10 * 2);\n",
|
|
"\t\t\t}\n",
|
|
"\t\t}\n",
|
|
"\t\tif (e.childNodes == undefined) return;\n",
|
|
"\t\tfor (var i = 0, c = e.childNodes; i < c.length; i++) {\n",
|
|
"\t\t\tzoom_parent(c[i]);\n",
|
|
"\t\t}\n",
|
|
"\t}\n",
|
|
"\tfunction zoom(node) {\n",
|
|
"\t\tvar attr = find_child(node, \"rect\").attributes;\n",
|
|
"\t\tvar width = parseFloat(attr.width.value);\n",
|
|
"\t\tvar xmin = parseFloat(attr.x.value);\n",
|
|
"\t\tvar xmax = parseFloat(xmin + width);\n",
|
|
"\t\tvar ymin = parseFloat(attr.y.value);\n",
|
|
"\t\tvar ratio = (svg.width.baseVal.value - 2 * 10) / width;\n",
|
|
"\n",
|
|
"\t\t// XXX: Workaround for JavaScript float issues (fix me)\n",
|
|
"\t\tvar fudge = 0.0001;\n",
|
|
"\n",
|
|
"\t\tunzoombtn.classList.remove(\"hide\");\n",
|
|
"\n",
|
|
"\t\tvar el = document.getElementById(\"frames\").children;\n",
|
|
"\t\tfor (var i = 0; i < el.length; i++) {\n",
|
|
"\t\t\tvar e = el[i];\n",
|
|
"\t\t\tvar a = find_child(e, \"rect\").attributes;\n",
|
|
"\t\t\tvar ex = parseFloat(a.x.value);\n",
|
|
"\t\t\tvar ew = parseFloat(a.width.value);\n",
|
|
"\t\t\tvar upstack;\n",
|
|
"\t\t\t// Is it an ancestor\n",
|
|
"\t\t\tif (1 == 0) {\n",
|
|
"\t\t\t\tupstack = parseFloat(a.y.value) > ymin;\n",
|
|
"\t\t\t} else {\n",
|
|
"\t\t\t\tupstack = parseFloat(a.y.value) < ymin;\n",
|
|
"\t\t\t}\n",
|
|
"\t\t\tif (upstack) {\n",
|
|
"\t\t\t\t// Direct ancestor\n",
|
|
"\t\t\t\tif (ex <= xmin && (ex+ew+fudge) >= xmax) {\n",
|
|
"\t\t\t\t\te.classList.add(\"parent\");\n",
|
|
"\t\t\t\t\tzoom_parent(e);\n",
|
|
"\t\t\t\t\tupdate_text(e);\n",
|
|
"\t\t\t\t}\n",
|
|
"\t\t\t\t// not in current path\n",
|
|
"\t\t\t\telse\n",
|
|
"\t\t\t\t\te.classList.add(\"hide\");\n",
|
|
"\t\t\t}\n",
|
|
"\t\t\t// Children maybe\n",
|
|
"\t\t\telse {\n",
|
|
"\t\t\t\t// no common path\n",
|
|
"\t\t\t\tif (ex < xmin || ex + fudge >= xmax) {\n",
|
|
"\t\t\t\t\te.classList.add(\"hide\");\n",
|
|
"\t\t\t\t}\n",
|
|
"\t\t\t\telse {\n",
|
|
"\t\t\t\t\tzoom_child(e, xmin, ratio);\n",
|
|
"\t\t\t\t\tupdate_text(e);\n",
|
|
"\t\t\t\t}\n",
|
|
"\t\t\t}\n",
|
|
"\t\t}\n",
|
|
"\t}\n",
|
|
"\tfunction unzoom() {\n",
|
|
"\t\tunzoombtn.classList.add(\"hide\");\n",
|
|
"\t\tvar el = document.getElementById(\"frames\").children;\n",
|
|
"\t\tfor(var i = 0; i < el.length; i++) {\n",
|
|
"\t\t\tel[i].classList.remove(\"parent\");\n",
|
|
"\t\t\tel[i].classList.remove(\"hide\");\n",
|
|
"\t\t\tzoom_reset(el[i]);\n",
|
|
"\t\t\tupdate_text(el[i]);\n",
|
|
"\t\t}\n",
|
|
"\t}\n",
|
|
"\n",
|
|
"\t// search\n",
|
|
"\tfunction reset_search() {\n",
|
|
"\t\tvar el = document.querySelectorAll(\"#frames rect\");\n",
|
|
"\t\tfor (var i = 0; i < el.length; i++) {\n",
|
|
"\t\t\torig_load(el[i], \"fill\")\n",
|
|
"\t\t}\n",
|
|
"\t}\n",
|
|
"\tfunction search_prompt() {\n",
|
|
"\t\tif (!searching) {\n",
|
|
"\t\t\tvar term = prompt(\"Enter a search term (regexp \" +\n",
|
|
"\t\t\t \"allowed, eg: ^ext4_)\", \"\");\n",
|
|
"\t\t\tif (term != null) {\n",
|
|
"\t\t\t\tsearch(term)\n",
|
|
"\t\t\t}\n",
|
|
"\t\t} else {\n",
|
|
"\t\t\treset_search();\n",
|
|
"\t\t\tsearching = 0;\n",
|
|
"\t\t\tsearchbtn.classList.remove(\"show\");\n",
|
|
"\t\t\tsearchbtn.firstChild.nodeValue = \"Search\"\n",
|
|
"\t\t\tmatchedtxt.classList.add(\"hide\");\n",
|
|
"\t\t\tmatchedtxt.firstChild.nodeValue = \"\"\n",
|
|
"\t\t}\n",
|
|
"\t}\n",
|
|
"\tfunction search(term) {\n",
|
|
"\t\tvar re = new RegExp(term);\n",
|
|
"\t\tvar el = document.getElementById(\"frames\").children;\n",
|
|
"\t\tvar matches = new Object();\n",
|
|
"\t\tvar maxwidth = 0;\n",
|
|
"\t\tfor (var i = 0; i < el.length; i++) {\n",
|
|
"\t\t\tvar e = el[i];\n",
|
|
"\t\t\tvar func = g_to_func(e);\n",
|
|
"\t\t\tvar rect = find_child(e, \"rect\");\n",
|
|
"\t\t\tif (func == null || rect == null)\n",
|
|
"\t\t\t\tcontinue;\n",
|
|
"\n",
|
|
"\t\t\t// Save max width. Only works as we have a root frame\n",
|
|
"\t\t\tvar w = parseFloat(rect.attributes.width.value);\n",
|
|
"\t\t\tif (w > maxwidth)\n",
|
|
"\t\t\t\tmaxwidth = w;\n",
|
|
"\n",
|
|
"\t\t\tif (func.match(re)) {\n",
|
|
"\t\t\t\t// highlight\n",
|
|
"\t\t\t\tvar x = parseFloat(rect.attributes.x.value);\n",
|
|
"\t\t\t\torig_save(rect, \"fill\");\n",
|
|
"\t\t\t\trect.attributes.fill.value = \"rgb(230,0,230)\";\n",
|
|
"\n",
|
|
"\t\t\t\t// remember matches\n",
|
|
"\t\t\t\tif (matches[x] == undefined) {\n",
|
|
"\t\t\t\t\tmatches[x] = w;\n",
|
|
"\t\t\t\t} else {\n",
|
|
"\t\t\t\t\tif (w > matches[x]) {\n",
|
|
"\t\t\t\t\t\t// overwrite with parent\n",
|
|
"\t\t\t\t\t\tmatches[x] = w;\n",
|
|
"\t\t\t\t\t}\n",
|
|
"\t\t\t\t}\n",
|
|
"\t\t\t\tsearching = 1;\n",
|
|
"\t\t\t}\n",
|
|
"\t\t}\n",
|
|
"\t\tif (!searching)\n",
|
|
"\t\t\treturn;\n",
|
|
"\n",
|
|
"\t\tsearchbtn.classList.add(\"show\");\n",
|
|
"\t\tsearchbtn.firstChild.nodeValue = \"Reset Search\";\n",
|
|
"\n",
|
|
"\t\t// calculate percent matched, excluding vertical overlap\n",
|
|
"\t\tvar count = 0;\n",
|
|
"\t\tvar lastx = -1;\n",
|
|
"\t\tvar lastw = 0;\n",
|
|
"\t\tvar keys = Array();\n",
|
|
"\t\tfor (k in matches) {\n",
|
|
"\t\t\tif (matches.hasOwnProperty(k))\n",
|
|
"\t\t\t\tkeys.push(k);\n",
|
|
"\t\t}\n",
|
|
"\t\t// sort the matched frames by their x location\n",
|
|
"\t\t// ascending, then width descending\n",
|
|
"\t\tkeys.sort(function(a, b){\n",
|
|
"\t\t\treturn a - b;\n",
|
|
"\t\t});\n",
|
|
"\t\t// Step through frames saving only the biggest bottom-up frames\n",
|
|
"\t\t// thanks to the sort order. This relies on the tree property\n",
|
|
"\t\t// where children are always smaller than their parents.\n",
|
|
"\t\tvar fudge = 0.0001;\t// JavaScript floating point\n",
|
|
"\t\tfor (var k in keys) {\n",
|
|
"\t\t\tvar x = parseFloat(keys[k]);\n",
|
|
"\t\t\tvar w = matches[keys[k]];\n",
|
|
"\t\t\tif (x >= lastx + lastw - fudge) {\n",
|
|
"\t\t\t\tcount += w;\n",
|
|
"\t\t\t\tlastx = x;\n",
|
|
"\t\t\t\tlastw = w;\n",
|
|
"\t\t\t}\n",
|
|
"\t\t}\n",
|
|
"\t\t// display matched percent\n",
|
|
"\t\tmatchedtxt.classList.remove(\"hide\");\n",
|
|
"\t\tvar pct = 100 * count / maxwidth;\n",
|
|
"\t\tif (pct != 100) pct = pct.toFixed(1)\n",
|
|
"\t\tmatchedtxt.firstChild.nodeValue = \"Matched: \" + pct + \"%\";\n",
|
|
"\t}\n",
|
|
"]]>\n",
|
|
"</script>\n",
|
|
"<rect x=\"0.0\" y=\"0\" width=\"1200.0\" height=\"406.0\" fill=\"url(#background)\" />\n",
|
|
"<text id=\"title\" x=\"600.00\" y=\"24\" >Icicle Graph</text>\n",
|
|
"<text id=\"details\" x=\"10.00\" y=\"389\" > </text>\n",
|
|
"<text id=\"unzoom\" x=\"10.00\" y=\"24\" class=\"hide\">Reset Zoom</text>\n",
|
|
"<text id=\"search\" x=\"1090.00\" y=\"24\" >Search</text>\n",
|
|
"<text id=\"matched\" x=\"1090.00\" y=\"389\" > </text>\n",
|
|
"<g id=\"frames\">\n",
|
|
"<g >\n",
|
|
"<title>/tmp/ipykernel_67611/1231667944.py:1:test_pandas (102,753 samples, 97.34%)</title><rect x=\"41.4\" y=\"84\" width=\"1148.6\" height=\"15.0\" fill=\"rgb(237,13,2)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"44.43\" y=\"94.5\" >/tmp/ipykernel_67611/1231667944.py:1:test_pandas</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2068:create_block_manager_from_column_arrays (2,137 samples, 2.02%)</title><rect x=\"408.7\" y=\"228\" width=\"23.8\" height=\"15.0\" fill=\"rgb(231,182,35)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"411.66\" y=\"238.5\" >/..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/nanops.py:76:_f (147 samples, 0.14%)</title><rect x=\"188.2\" y=\"164\" width=\"1.6\" height=\"15.0\" fill=\"rgb(245,40,14)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"191.20\" y=\"174.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexes/base.py:7521:ensure_index (207 samples, 0.20%)</title><rect x=\"434.0\" y=\"244\" width=\"2.3\" height=\"15.0\" fill=\"rgb(249,27,47)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"436.98\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/generic.py:6337:dtypes (182 samples, 0.17%)</title><rect x=\"1163.7\" y=\"260\" width=\"2.1\" height=\"15.0\" fill=\"rgb(251,38,49)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1166.73\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/generic.py:6368:astype (306 samples, 0.29%)</title><rect x=\"973.8\" y=\"244\" width=\"3.4\" height=\"15.0\" fill=\"rgb(232,45,3)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"976.77\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:500:read_json (82,450 samples, 78.10%)</title><rect x=\"189.8\" y=\"100\" width=\"921.7\" height=\"15.0\" fill=\"rgb(248,216,25)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"192.84\" y=\"110.5\" >/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:500:read_json</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2194:_stack_arrays (271 samples, 0.26%)</title><rect x=\"845.3\" y=\"276\" width=\"3.1\" height=\"15.0\" fill=\"rgb(220,219,52)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"848.34\" y=\"286.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2068:create_block_manager_from_column_arrays (285 samples, 0.27%)</title><rect x=\"874.6\" y=\"228\" width=\"3.2\" height=\"15.0\" fill=\"rgb(210,158,29)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"877.64\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/series.py:371:__init__ (109 samples, 0.10%)</title><rect x=\"367.2\" y=\"244\" width=\"1.2\" height=\"15.0\" fill=\"rgb(241,68,31)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"370.20\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:1204:_try_convert_data (379 samples, 0.36%)</title><rect x=\"973.0\" y=\"228\" width=\"4.2\" height=\"15.0\" fill=\"rgb(240,174,48)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"975.96\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/dtypes/base.py:510:find (182 samples, 0.17%)</title><rect x=\"951.3\" y=\"324\" width=\"2.0\" height=\"15.0\" fill=\"rgb(218,71,47)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"954.31\" y=\"334.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:1282:_try_convert_to_date (299 samples, 0.28%)</title><rect x=\"365.1\" y=\"196\" width=\"3.3\" height=\"15.0\" fill=\"rgb(245,3,54)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"368.08\" y=\"206.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<built-in method pandas._libs.json.ujson_loads> (24,688 samples, 23.39%)</title><rect x=\"547.2\" y=\"180\" width=\"276.0\" height=\"15.0\" fill=\"rgb(244,85,52)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"550.23\" y=\"190.5\" >~:0:<built-in method pandas._libs.js..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/dtypes/astype.py:192:astype_array_safe (5,918 samples, 5.61%)</title><rect x=\"887.2\" y=\"292\" width=\"66.1\" height=\"15.0\" fill=\"rgb(226,137,20)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"890.19\" y=\"302.5\" >/home/m..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:506:nested_data_to_arrays (9,067 samples, 8.59%)</title><rect x=\"432.5\" y=\"196\" width=\"101.4\" height=\"15.0\" fill=\"rgb(232,51,14)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"435.55\" y=\"206.5\" >/home/marius..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/frame.py:665:__init__ (13,135 samples, 12.44%)</title><rect x=\"400.4\" y=\"180\" width=\"146.8\" height=\"15.0\" fill=\"rgb(220,72,38)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"403.41\" y=\"190.5\" >/home/marius/anaco..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexing.py:1681:_getitem_axis (125 samples, 0.12%)</title><rect x=\"1177.4\" y=\"244\" width=\"1.4\" height=\"15.0\" fill=\"rgb(208,108,47)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1180.36\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/dtypes/missing.py:184:_isna (117 samples, 0.11%)</title><rect x=\"1146.8\" y=\"340\" width=\"1.3\" height=\"15.0\" fill=\"rgb(242,29,4)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1149.76\" y=\"350.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/reshape/concat.py:695:new_axes (124 samples, 0.12%)</title><rect x=\"177.9\" y=\"164\" width=\"1.4\" height=\"15.0\" fill=\"rgb(232,83,25)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"180.90\" y=\"174.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2224:_merge_blocks (881 samples, 0.83%)</title><rect x=\"409.7\" y=\"276\" width=\"9.9\" height=\"15.0\" fill=\"rgb(242,62,33)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"412.72\" y=\"286.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexing.py:1681:_getitem_axis (127 samples, 0.12%)</title><rect x=\"1137.7\" y=\"308\" width=\"1.5\" height=\"15.0\" fill=\"rgb(242,49,1)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1140.74\" y=\"318.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<pandas._libs.lib.dicts_to_array> (2,870 samples, 2.72%)</title><rect x=\"446.7\" y=\"244\" width=\"32.1\" height=\"15.0\" fill=\"rgb(206,43,19)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"449.69\" y=\"254.5\" >~:..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:1022:_get_object_parser (56,621 samples, 53.64%)</title><rect x=\"344.3\" y=\"132\" width=\"632.9\" height=\"15.0\" fill=\"rgb(242,172,28)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"347.29\" y=\"142.5\" >/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:1022:_get_o..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/_config/config.py:145:_get_option (122 samples, 0.12%)</title><rect x=\"1140.2\" y=\"292\" width=\"1.4\" height=\"15.0\" fill=\"rgb(233,171,25)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1143.21\" y=\"302.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<built-in method builtins.max> (112 samples, 0.11%)</title><rect x=\"1160.8\" y=\"308\" width=\"1.2\" height=\"15.0\" fill=\"rgb(239,32,45)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1163.77\" y=\"318.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<built-in method pandas._libs.lib.ensure_string_array> (4,514 samples, 4.28%)</title><rect x=\"890.0\" y=\"340\" width=\"50.5\" height=\"15.0\" fill=\"rgb(216,60,51)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"893.04\" y=\"350.5\" >~:0:<..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/nanops.py:604:nansum (117 samples, 0.11%)</title><rect x=\"188.5\" y=\"212\" width=\"1.3\" height=\"15.0\" fill=\"rgb(217,181,54)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"191.53\" y=\"222.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<pandas._libs.lib.dicts_to_array> (737 samples, 0.70%)</title><rect x=\"852.6\" y=\"260\" width=\"8.2\" height=\"15.0\" fill=\"rgb(210,105,8)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"855.60\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/tools/datetimes.py:216:_maybe_cache (117 samples, 0.11%)</title><rect x=\"367.1\" y=\"228\" width=\"1.3\" height=\"15.0\" fill=\"rgb(223,228,27)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"370.11\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<method 'close' of '_io.TextIOWrapper' objects> (117 samples, 0.11%)</title><rect x=\"202.8\" y=\"196\" width=\"1.3\" height=\"15.0\" fill=\"rgb(228,112,31)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"205.79\" y=\"206.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:1744:_consolidate_inplace (502 samples, 0.48%)</title><rect x=\"534.9\" y=\"228\" width=\"5.6\" height=\"15.0\" fill=\"rgb(254,214,5)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"537.87\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/format.py:789:truncate (1,298 samples, 1.23%)</title><rect x=\"1174.2\" y=\"164\" width=\"14.5\" height=\"15.0\" fill=\"rgb(209,228,48)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1177.23\" y=\"174.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:922:<listcomp> (239 samples, 0.23%)</title><rect x=\"849.9\" y=\"260\" width=\"2.7\" height=\"15.0\" fill=\"rgb(236,123,24)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"852.93\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/tools/datetimes.py:526:_to_datetime_with_unit (247 samples, 0.23%)</title><rect x=\"967.9\" y=\"276\" width=\"2.8\" height=\"15.0\" fill=\"rgb(252,83,34)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"970.93\" y=\"286.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/frame.py:1392:items (667 samples, 0.63%)</title><rect x=\"43.0\" y=\"132\" width=\"7.4\" height=\"15.0\" fill=\"rgb(206,86,17)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"45.95\" y=\"142.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/dtypes/common.py:1587:pandas_dtype (365 samples, 0.35%)</title><rect x=\"949.3\" y=\"308\" width=\"4.0\" height=\"15.0\" fill=\"rgb(229,95,18)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"952.26\" y=\"318.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/dtypes/missing.py:380:notna (150 samples, 0.14%)</title><rect x=\"1146.4\" y=\"308\" width=\"1.7\" height=\"15.0\" fill=\"rgb(223,122,32)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1149.39\" y=\"318.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/concat.py:94:concatenate_managers (235 samples, 0.22%)</title><rect x=\"1182.4\" y=\"228\" width=\"2.6\" height=\"15.0\" fill=\"rgb(219,99,11)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1185.38\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:1006:convert_object_array (164 samples, 0.16%)</title><rect x=\"532.1\" y=\"244\" width=\"1.8\" height=\"15.0\" fill=\"rgb(249,72,54)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"535.07\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/reshape/concat.py:618:get_result (779 samples, 0.74%)</title><rect x=\"1180.0\" y=\"212\" width=\"8.7\" height=\"15.0\" fill=\"rgb(217,93,14)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1183.03\" y=\"222.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:816:__init__ (12,676 samples, 12.01%)</title><rect x=\"202.1\" y=\"116\" width=\"141.7\" height=\"15.0\" fill=\"rgb(220,142,36)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"205.07\" y=\"126.5\" >/home/marius/anaco..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:596:_homogenize (145 samples, 0.14%)</title><rect x=\"407.0\" y=\"228\" width=\"1.7\" height=\"15.0\" fill=\"rgb(235,101,49)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"410.04\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:1172:parse (56,590 samples, 53.61%)</title><rect x=\"344.6\" y=\"148\" width=\"632.6\" height=\"15.0\" fill=\"rgb(223,209,19)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"347.63\" y=\"158.5\" >/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:1172:parse</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>all (105,565 samples, 100%)</title><rect x=\"10.0\" y=\"36\" width=\"1180.0\" height=\"15.0\" fill=\"rgb(214,205,26)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"13.00\" y=\"46.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title><frozen codecs>:319:decode (2,921 samples, 2.77%)</title><rect x=\"298.9\" y=\"164\" width=\"32.7\" height=\"15.0\" fill=\"rgb(216,23,19)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"301.95\" y=\"174.5\" ><f..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/string.py:40:_get_string_representation (5,210 samples, 4.94%)</title><rect x=\"1115.0\" y=\"180\" width=\"58.3\" height=\"15.0\" fill=\"rgb(218,45,3)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1118.02\" y=\"190.5\" >/home/..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2137:_form_blocks (1,161 samples, 1.10%)</title><rect x=\"419.6\" y=\"244\" width=\"12.9\" height=\"15.0\" fill=\"rgb(233,109,34)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"422.57\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexing.py:1651:_getitem_tuple (305 samples, 0.29%)</title><rect x=\"1175.3\" y=\"212\" width=\"3.5\" height=\"15.0\" fill=\"rgb(218,54,29)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1178.35\" y=\"222.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/common.py:121:close (131 samples, 0.12%)</title><rect x=\"202.6\" y=\"180\" width=\"1.5\" height=\"15.0\" fill=\"rgb(207,154,31)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"205.63\" y=\"190.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexing.py:1139:__getitem__ (1,092 samples, 1.03%)</title><rect x=\"1127.0\" y=\"260\" width=\"12.2\" height=\"15.0\" fill=\"rgb(221,96,49)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1129.96\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/generic.py:6368:astype (6,712 samples, 6.36%)</title><rect x=\"878.3\" y=\"228\" width=\"75.0\" height=\"15.0\" fill=\"rgb(239,162,14)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"881.31\" y=\"238.5\" >/home/ma..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/dtypes/astype.py:56:_astype_nansafe (250 samples, 0.24%)</title><rect x=\"974.4\" y=\"340\" width=\"2.8\" height=\"15.0\" fill=\"rgb(208,47,34)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"977.40\" y=\"350.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<pandas._libs.lib.fast_unique_multiple_list_gen> (4,722 samples, 4.47%)</title><rect x=\"478.8\" y=\"244\" width=\"52.8\" height=\"15.0\" fill=\"rgb(248,130,43)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"481.77\" y=\"254.5\" >~:0:<..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/format.py:843:_get_strcols_without_index (4,287 samples, 4.06%)</title><rect x=\"1119.6\" y=\"228\" width=\"47.9\" height=\"15.0\" fill=\"rgb(207,164,27)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1122.58\" y=\"238.5\" >/hom..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2137:_form_blocks (155 samples, 0.15%)</title><rect x=\"876.1\" y=\"244\" width=\"1.7\" height=\"15.0\" fill=\"rgb(208,132,4)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"879.09\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:965:<listcomp> (3,827 samples, 3.63%)</title><rect x=\"1006.1\" y=\"148\" width=\"42.7\" height=\"15.0\" fill=\"rgb(237,69,19)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1009.07\" y=\"158.5\" >/hom..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/frame.py:4402:_get_item_cache (483 samples, 0.46%)</title><rect x=\"834.6\" y=\"212\" width=\"5.4\" height=\"15.0\" fill=\"rgb(240,212,11)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"837.62\" y=\"222.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2207:_consolidate (477 samples, 0.45%)</title><rect x=\"535.2\" y=\"244\" width=\"5.3\" height=\"15.0\" fill=\"rgb(230,215,42)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"538.15\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/format.py:611:get_strcols (4,538 samples, 4.30%)</title><rect x=\"1119.5\" y=\"212\" width=\"50.7\" height=\"15.0\" fill=\"rgb(232,102,53)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1122.51\" y=\"222.5\" >/home..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexes/base.py:1038:astype (316 samples, 0.30%)</title><rect x=\"953.3\" y=\"228\" width=\"3.6\" height=\"15.0\" fill=\"rgb(212,106,28)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"956.34\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/reshape/concat.py:695:new_axes (334 samples, 0.32%)</title><rect x=\"1185.0\" y=\"228\" width=\"3.7\" height=\"15.0\" fill=\"rgb(225,120,26)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1188.00\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/format.py:564:__init__ (1,385 samples, 1.31%)</title><rect x=\"1173.3\" y=\"148\" width=\"15.4\" height=\"15.0\" fill=\"rgb(206,51,41)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1176.26\" y=\"158.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/frame.py:3776:_ixs (390 samples, 0.37%)</title><rect x=\"835.7\" y=\"228\" width=\"4.3\" height=\"15.0\" fill=\"rgb(226,102,35)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"838.66\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:423:dict_to_mgr (706 samples, 0.67%)</title><rect x=\"840.5\" y=\"212\" width=\"7.9\" height=\"15.0\" fill=\"rgb(213,21,35)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"843.48\" y=\"222.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:405:astype (6,217 samples, 5.89%)</title><rect x=\"883.8\" y=\"244\" width=\"69.5\" height=\"15.0\" fill=\"rgb(245,222,40)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"886.85\" y=\"254.5\" >/home/m..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<built-in method builtins.exec> (105,565 samples, 100.00%)</title><rect x=\"10.0\" y=\"52\" width=\"1180.0\" height=\"15.0\" fill=\"rgb(235,119,39)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"13.00\" y=\"62.5\" >~:0:<built-in method builtins.exec></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<pandas._libs.lib.fast_unique_multiple_list_gen> (1,213 samples, 1.15%)</title><rect x=\"860.8\" y=\"260\" width=\"13.6\" height=\"15.0\" fill=\"rgb(250,211,0)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"863.84\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:991:iget (106 samples, 0.10%)</title><rect x=\"838.8\" y=\"244\" width=\"1.2\" height=\"15.0\" fill=\"rgb(207,62,44)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"841.83\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:891:_list_of_dict_to_arrays (2,251 samples, 2.13%)</title><rect x=\"849.2\" y=\"244\" width=\"25.2\" height=\"15.0\" fill=\"rgb(254,181,43)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"852.24\" y=\"254.5\" >/..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:793:to_arrays (9,043 samples, 8.57%)</title><rect x=\"432.8\" y=\"212\" width=\"101.1\" height=\"15.0\" fill=\"rgb(240,136,21)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"435.82\" y=\"222.5\" >/home/marius..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/_config/config.py:271:__call__ (134 samples, 0.13%)</title><rect x=\"1140.1\" y=\"276\" width=\"1.5\" height=\"15.0\" fill=\"rgb(249,200,24)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1143.08\" y=\"286.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/format.py:487:get_dataframe_repr_params (113 samples, 0.11%)</title><rect x=\"1188.7\" y=\"132\" width=\"1.3\" height=\"15.0\" fill=\"rgb(219,208,34)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1191.74\" y=\"142.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexing.py:1651:_getitem_tuple (870 samples, 0.82%)</title><rect x=\"1129.4\" y=\"276\" width=\"9.8\" height=\"15.0\" fill=\"rgb(238,129,27)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1132.44\" y=\"286.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/tools/datetimes.py:216:_maybe_cache (485 samples, 0.46%)</title><rect x=\"962.3\" y=\"260\" width=\"5.4\" height=\"15.0\" fill=\"rgb(238,123,42)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"965.26\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/numpy/core/shape_base.py:223:vstack (113 samples, 0.11%)</title><rect x=\"539.2\" y=\"308\" width=\"1.3\" height=\"15.0\" fill=\"rgb(219,95,37)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"542.22\" y=\"318.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:915:<genexpr> (796 samples, 0.75%)</title><rect x=\"865.5\" y=\"276\" width=\"8.9\" height=\"15.0\" fill=\"rgb(238,176,27)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"868.50\" y=\"286.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<method 'split' of 'str' objects> (2,960 samples, 2.80%)</title><rect x=\"1078.4\" y=\"132\" width=\"33.1\" height=\"15.0\" fill=\"rgb(237,132,20)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1081.38\" y=\"142.5\" >~:..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:1185:_convert_axes (2,110 samples, 2.00%)</title><rect x=\"344.8\" y=\"164\" width=\"23.6\" height=\"15.0\" fill=\"rgb(226,3,47)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"347.84\" y=\"174.5\" >/..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/format.py:956:_get_formatted_index (245 samples, 0.23%)</title><rect x=\"1167.5\" y=\"228\" width=\"2.7\" height=\"15.0\" fill=\"rgb(206,48,16)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1170.50\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/format.py:890:format_col (3,355 samples, 3.18%)</title><rect x=\"1124.5\" y=\"244\" width=\"37.5\" height=\"15.0\" fill=\"rgb(253,136,4)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1127.52\" y=\"254.5\" >/ho..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:1396:_process_converter (576 samples, 0.55%)</title><rect x=\"970.8\" y=\"196\" width=\"6.4\" height=\"15.0\" fill=\"rgb(229,150,7)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"973.76\" y=\"206.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title><__array_function__ internals>:177:concatenate (109 samples, 0.10%)</title><rect x=\"539.3\" y=\"324\" width=\"1.2\" height=\"15.0\" fill=\"rgb(214,188,32)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"542.26\" y=\"334.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<built-in method _codecs.utf_8_decode> (2,892 samples, 2.74%)</title><rect x=\"299.3\" y=\"180\" width=\"32.3\" height=\"15.0\" fill=\"rgb(238,32,37)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"302.27\" y=\"190.5\" >~:..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2207:_consolidate (918 samples, 0.87%)</title><rect x=\"409.3\" y=\"260\" width=\"10.3\" height=\"15.0\" fill=\"rgb(252,125,0)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"412.31\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/reshape/concat.py:157:concat (893 samples, 0.85%)</title><rect x=\"1178.8\" y=\"196\" width=\"9.9\" height=\"15.0\" fill=\"rgb(247,143,1)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1181.75\" y=\"206.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:1282:_try_convert_to_date (1,236 samples, 1.17%)</title><rect x=\"956.9\" y=\"228\" width=\"13.8\" height=\"15.0\" fill=\"rgb(242,156,47)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"959.87\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/series.py:3159:_append (365 samples, 0.35%)</title><rect x=\"175.2\" y=\"116\" width=\"4.1\" height=\"15.0\" fill=\"rgb(218,210,15)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"178.21\" y=\"126.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/frame.py:4402:_get_item_cache (583 samples, 0.55%)</title><rect x=\"43.9\" y=\"148\" width=\"6.5\" height=\"15.0\" fill=\"rgb(254,37,27)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"46.89\" y=\"158.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/tools/datetimes.py:721:to_datetime (823 samples, 0.78%)</title><rect x=\"961.5\" y=\"244\" width=\"9.2\" height=\"15.0\" fill=\"rgb(239,79,53)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"964.49\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/dtypes/astype.py:158:astype_array (1,337 samples, 1.27%)</title><rect x=\"350.1\" y=\"276\" width=\"15.0\" height=\"15.0\" fill=\"rgb(233,101,31)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"353.13\" y=\"286.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2207:_consolidate (123 samples, 0.12%)</title><rect x=\"874.7\" y=\"260\" width=\"1.4\" height=\"15.0\" fill=\"rgb(220,19,6)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"877.71\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexes/base.py:5422:append (261 samples, 0.25%)</title><rect x=\"1185.8\" y=\"292\" width=\"2.9\" height=\"15.0\" fill=\"rgb(238,126,10)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1188.82\" y=\"302.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2194:_stack_arrays (1,054 samples, 1.00%)</title><rect x=\"420.8\" y=\"260\" width=\"11.7\" height=\"15.0\" fill=\"rgb(246,142,43)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"423.77\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:1204:_try_convert_data (8,299 samples, 7.86%)</title><rect x=\"877.9\" y=\"212\" width=\"92.8\" height=\"15.0\" fill=\"rgb(252,209,6)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"880.92\" y=\"222.5\" >/home/mariu..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/series.py:6195:sum (181 samples, 0.17%)</title><rect x=\"187.8\" y=\"100\" width=\"2.0\" height=\"15.0\" fill=\"rgb(239,196,42)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"190.82\" y=\"110.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexing.py:931:_validate_tuple_indexer (188 samples, 0.18%)</title><rect x=\"1135.4\" y=\"292\" width=\"2.1\" height=\"15.0\" fill=\"rgb(244,2,48)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1138.44\" y=\"302.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/string.py:28:to_string (5,230 samples, 4.95%)</title><rect x=\"1114.8\" y=\"164\" width=\"58.5\" height=\"15.0\" fill=\"rgb(229,12,32)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1117.79\" y=\"174.5\" >/home/..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/generic.py:12070:sum (178 samples, 0.17%)</title><rect x=\"187.9\" y=\"116\" width=\"1.9\" height=\"15.0\" fill=\"rgb(210,141,42)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"190.85\" y=\"126.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:928:_finalize_columns_and_data (210 samples, 0.20%)</title><rect x=\"531.6\" y=\"228\" width=\"2.3\" height=\"15.0\" fill=\"rgb(249,209,45)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"534.55\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:405:astype (283 samples, 0.27%)</title><rect x=\"974.0\" y=\"260\" width=\"3.2\" height=\"15.0\" fill=\"rgb(209,13,25)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"977.03\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<pandas._libs.tslib.array_with_unit_to_datetime> (223 samples, 0.21%)</title><rect x=\"968.2\" y=\"292\" width=\"2.5\" height=\"15.0\" fill=\"rgb(243,113,6)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"971.20\" y=\"302.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexes/base.py:1418:_format_with_header (152 samples, 0.14%)</title><rect x=\"1165.8\" y=\"276\" width=\"1.7\" height=\"15.0\" fill=\"rgb(221,10,33)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1168.80\" y=\"286.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/generic.py:6368:astype (1,626 samples, 1.54%)</title><rect x=\"346.9\" y=\"196\" width=\"18.2\" height=\"15.0\" fill=\"rgb(247,63,16)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"349.90\" y=\"206.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/frame.py:3561:<listcomp> (11,854 samples, 11.23%)</title><rect x=\"42.7\" y=\"116\" width=\"132.5\" height=\"15.0\" fill=\"rgb(212,122,37)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"45.71\" y=\"126.5\" >/home/marius/ana..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:1964:array_values (165 samples, 0.16%)</title><rect x=\"55.3\" y=\"180\" width=\"1.8\" height=\"15.0\" fill=\"rgb(247,45,49)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"58.29\" y=\"190.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexes/base.py:5519:equals (106 samples, 0.10%)</title><rect x=\"1181.2\" y=\"228\" width=\"1.2\" height=\"15.0\" fill=\"rgb(235,46,10)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1184.19\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/printing.py:28:adjoin (195 samples, 0.18%)</title><rect x=\"1117.2\" y=\"228\" width=\"2.1\" height=\"15.0\" fill=\"rgb(240,44,27)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1120.15\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:1396:_process_converter (12,381 samples, 11.73%)</title><rect x=\"832.3\" y=\"180\" width=\"138.4\" height=\"15.0\" fill=\"rgb(212,212,42)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"835.29\" y=\"190.5\" >/home/marius/anac..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:965:<genexpr> (2,854 samples, 2.70%)</title><rect x=\"1016.9\" y=\"164\" width=\"31.9\" height=\"15.0\" fill=\"rgb(205,66,21)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1019.94\" y=\"174.5\" >/h..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/format.py:1355:_format (590 samples, 0.56%)</title><rect x=\"1148.1\" y=\"308\" width=\"6.6\" height=\"15.0\" fill=\"rgb(209,80,32)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1151.07\" y=\"318.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:1028:convert (157 samples, 0.15%)</title><rect x=\"532.1\" y=\"276\" width=\"1.8\" height=\"15.0\" fill=\"rgb(210,81,18)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"535.14\" y=\"286.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/reshape/concat.py:618:get_result (290 samples, 0.27%)</title><rect x=\"176.0\" y=\"148\" width=\"3.3\" height=\"15.0\" fill=\"rgb(240,223,33)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"179.05\" y=\"158.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/reshape/concat.py:698:<listcomp> (326 samples, 0.31%)</title><rect x=\"1185.1\" y=\"244\" width=\"3.6\" height=\"15.0\" fill=\"rgb(240,95,23)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1188.09\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<built-in method numpy.core._multiarray_umath.implement_array_function> (146 samples, 0.14%)</title><rect x=\"538.9\" y=\"292\" width=\"1.6\" height=\"15.0\" fill=\"rgb(241,161,41)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"541.85\" y=\"302.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:96:arrays_to_mgr (1,193 samples, 1.13%)</title><rect x=\"533.9\" y=\"196\" width=\"13.3\" height=\"15.0\" fill=\"rgb(254,70,17)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"536.90\" y=\"206.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/format.py:956:_get_formatted_index (210 samples, 0.20%)</title><rect x=\"1170.9\" y=\"228\" width=\"2.4\" height=\"15.0\" fill=\"rgb(205,147,45)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1173.91\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:960:_combine_lines (9,052 samples, 8.57%)</title><rect x=\"977.2\" y=\"132\" width=\"101.2\" height=\"15.0\" fill=\"rgb(210,184,54)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"980.19\" y=\"142.5\" >/home/marius..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/series.py:371:__init__ (763 samples, 0.72%)</title><rect x=\"179.3\" y=\"116\" width=\"8.5\" height=\"15.0\" fill=\"rgb(219,213,18)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"182.29\" y=\"126.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2137:_form_blocks (299 samples, 0.28%)</title><rect x=\"845.0\" y=\"260\" width=\"3.4\" height=\"15.0\" fill=\"rgb(243,208,11)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"848.03\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/format.py:1217:format_array (2,045 samples, 1.94%)</title><rect x=\"1139.2\" y=\"260\" width=\"22.8\" height=\"15.0\" fill=\"rgb(240,148,16)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1142.16\" y=\"270.5\" >/..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexes/base.py:1418:_format_with_header (149 samples, 0.14%)</title><rect x=\"1168.6\" y=\"260\" width=\"1.6\" height=\"15.0\" fill=\"rgb(240,126,10)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1171.57\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexing.py:1536:_validate_key (139 samples, 0.13%)</title><rect x=\"1136.0\" y=\"308\" width=\"1.5\" height=\"15.0\" fill=\"rgb(221,29,47)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1138.99\" y=\"318.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/dtypes/astype.py:192:astype_array_safe (270 samples, 0.26%)</title><rect x=\"974.2\" y=\"308\" width=\"3.0\" height=\"15.0\" fill=\"rgb(225,111,26)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"977.18\" y=\"318.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/nanops.py:389:new_func (126 samples, 0.12%)</title><rect x=\"188.4\" y=\"180\" width=\"1.4\" height=\"15.0\" fill=\"rgb(247,69,1)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"191.43\" y=\"190.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:1429:<lambda> (379 samples, 0.36%)</title><rect x=\"973.0\" y=\"212\" width=\"4.2\" height=\"15.0\" fill=\"rgb(254,114,21)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"975.96\" y=\"222.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<method 'keys' of 'dict' objects> (378 samples, 0.36%)</title><rect x=\"527.3\" y=\"276\" width=\"4.3\" height=\"15.0\" fill=\"rgb(230,80,0)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"530.33\" y=\"286.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/series.py:5223:memory_usage (11,165 samples, 10.58%)</title><rect x=\"50.4\" y=\"132\" width=\"124.8\" height=\"15.0\" fill=\"rgb(221,136,39)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"53.41\" y=\"142.5\" >/home/marius/an..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/blocks.py:2241:array_values (135 samples, 0.13%)</title><rect x=\"55.6\" y=\"196\" width=\"1.5\" height=\"15.0\" fill=\"rgb(236,75,25)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"58.63\" y=\"206.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2194:_stack_arrays (141 samples, 0.13%)</title><rect x=\"876.2\" y=\"260\" width=\"1.6\" height=\"15.0\" fill=\"rgb(209,149,16)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"879.25\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<method 'read' of '_io.TextIOWrapper' objects> (11,407 samples, 10.81%)</title><rect x=\"204.1\" y=\"148\" width=\"127.5\" height=\"15.0\" fill=\"rgb(239,87,0)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"207.09\" y=\"158.5\" >~:0:<method 'rea..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:96:arrays_to_mgr (306 samples, 0.29%)</title><rect x=\"874.4\" y=\"212\" width=\"3.4\" height=\"15.0\" fill=\"rgb(247,101,8)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"877.40\" y=\"222.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexes/base.py:1418:_format_with_header (129 samples, 0.12%)</title><rect x=\"1171.8\" y=\"260\" width=\"1.5\" height=\"15.0\" fill=\"rgb(252,93,8)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1174.81\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2224:_merge_blocks (118 samples, 0.11%)</title><rect x=\"874.8\" y=\"276\" width=\"1.3\" height=\"15.0\" fill=\"rgb(236,211,54)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"877.77\" y=\"286.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/format.py:434:adjoin (205 samples, 0.19%)</title><rect x=\"1117.0\" y=\"212\" width=\"2.3\" height=\"15.0\" fill=\"rgb(251,145,0)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1120.04\" y=\"222.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<method 'join' of 'str' objects> (2,642 samples, 2.50%)</title><rect x=\"1048.8\" y=\"148\" width=\"29.6\" height=\"15.0\" fill=\"rgb(223,77,40)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1051.84\" y=\"158.5\" >~:..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2207:_consolidate (236 samples, 0.22%)</title><rect x=\"842.4\" y=\"276\" width=\"2.6\" height=\"15.0\" fill=\"rgb(208,48,11)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"845.39\" y=\"286.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexing.py:1681:_getitem_axis (357 samples, 0.34%)</title><rect x=\"1131.4\" y=\"308\" width=\"4.0\" height=\"15.0\" fill=\"rgb(205,107,50)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1134.45\" y=\"318.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/dtypes/astype.py:192:astype_array_safe (1,434 samples, 1.36%)</title><rect x=\"349.0\" y=\"260\" width=\"16.1\" height=\"15.0\" fill=\"rgb(247,72,36)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"352.05\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:891:_list_of_dict_to_arrays (8,762 samples, 8.30%)</title><rect x=\"433.6\" y=\"228\" width=\"98.0\" height=\"15.0\" fill=\"rgb(248,173,26)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"436.61\" y=\"238.5\" >/home/mariu..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:922:<listcomp> (930 samples, 0.88%)</title><rect x=\"436.3\" y=\"244\" width=\"10.4\" height=\"15.0\" fill=\"rgb(248,83,21)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"439.29\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/reshape/concat.py:157:concat (347 samples, 0.33%)</title><rect x=\"175.4\" y=\"132\" width=\"3.9\" height=\"15.0\" fill=\"rgb(225,53,12)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"178.41\" y=\"142.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<built-in method numpy.core._multiarray_umath.implement_array_function> (108 samples, 0.10%)</title><rect x=\"539.3\" y=\"340\" width=\"1.2\" height=\"15.0\" fill=\"rgb(215,168,18)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"542.28\" y=\"350.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/format.py:825:_truncate_vertically (1,285 samples, 1.22%)</title><rect x=\"1174.4\" y=\"180\" width=\"14.3\" height=\"15.0\" fill=\"rgb(232,1,8)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1177.37\" y=\"190.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/ipykernel/iostream.py:610:write (126 samples, 0.12%)</title><rect x=\"1111.6\" y=\"116\" width=\"1.5\" height=\"15.0\" fill=\"rgb(227,5,10)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1114.64\" y=\"126.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/format.py:1077:to_string (5,270 samples, 4.99%)</title><rect x=\"1114.3\" y=\"148\" width=\"59.0\" height=\"15.0\" fill=\"rgb(212,48,49)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1117.35\" y=\"158.5\" >/home/..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/base.py:1135:_memory_usage (11,150 samples, 10.56%)</title><rect x=\"50.6\" y=\"148\" width=\"124.6\" height=\"15.0\" fill=\"rgb(235,182,36)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"53.58\" y=\"158.5\" >/home/marius/an..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:1204:_try_convert_data (2,029 samples, 1.92%)</title><rect x=\"345.7\" y=\"180\" width=\"22.7\" height=\"15.0\" fill=\"rgb(243,164,17)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"348.74\" y=\"190.5\" >/..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:1429:<lambda> (8,308 samples, 7.87%)</title><rect x=\"877.8\" y=\"196\" width=\"92.9\" height=\"15.0\" fill=\"rgb(248,202,44)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"880.82\" y=\"206.5\" >/home/mariu..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/frame.py:3776:_ixs (196 samples, 0.19%)</title><rect x=\"1133.2\" y=\"324\" width=\"2.2\" height=\"15.0\" fill=\"rgb(213,103,43)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1136.25\" y=\"334.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:96:arrays_to_mgr (2,506 samples, 2.37%)</title><rect x=\"404.5\" y=\"212\" width=\"28.0\" height=\"15.0\" fill=\"rgb(235,120,13)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"407.54\" y=\"222.5\" >/..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:308:apply (282 samples, 0.27%)</title><rect x=\"974.0\" y=\"276\" width=\"3.2\" height=\"15.0\" fill=\"rgb(230,127,35)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"977.04\" y=\"286.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:1360:_parse (40,685 samples, 38.54%)</title><rect x=\"368.4\" y=\"164\" width=\"454.8\" height=\"15.0\" fill=\"rgb(224,215,43)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"371.42\" y=\"174.5\" >/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/dtypes/base.py:510:find (249 samples, 0.24%)</title><rect x=\"881.1\" y=\"260\" width=\"2.7\" height=\"15.0\" fill=\"rgb(246,197,28)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"884.06\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/dtypes/common.py:1587:pandas_dtype (197 samples, 0.19%)</title><rect x=\"954.7\" y=\"244\" width=\"2.2\" height=\"15.0\" fill=\"rgb(227,123,12)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"957.67\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:1105:__exit__ (142 samples, 0.13%)</title><rect x=\"202.5\" y=\"148\" width=\"1.6\" height=\"15.0\" fill=\"rgb(207,225,18)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"205.51\" y=\"158.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/format.py:915:_get_formatted_column_labels (490 samples, 0.46%)</title><rect x=\"1162.0\" y=\"244\" width=\"5.5\" height=\"15.0\" fill=\"rgb(218,164,17)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1165.02\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:405:astype (1,506 samples, 1.43%)</title><rect x=\"348.2\" y=\"212\" width=\"16.9\" height=\"15.0\" fill=\"rgb(205,147,20)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"351.24\" y=\"222.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/nanops.py:455:newfunc (121 samples, 0.11%)</title><rect x=\"188.5\" y=\"196\" width=\"1.3\" height=\"15.0\" fill=\"rgb(225,181,35)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"191.49\" y=\"206.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/printing.py:162:pprint_thing (354 samples, 0.34%)</title><rect x=\"1150.7\" y=\"324\" width=\"4.0\" height=\"15.0\" fill=\"rgb(249,213,40)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1153.71\" y=\"334.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title><__array_function__ internals>:177:concatenate (209 samples, 0.20%)</title><rect x=\"417.2\" y=\"340\" width=\"2.4\" height=\"15.0\" fill=\"rgb(207,86,2)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"420.23\" y=\"350.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:912:_get_data_from_filepath (1,088 samples, 1.03%)</title><rect x=\"331.6\" y=\"132\" width=\"12.2\" height=\"15.0\" fill=\"rgb(216,122,12)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"334.60\" y=\"142.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/frame.py:665:__init__ (154 samples, 0.15%)</title><rect x=\"971.2\" y=\"212\" width=\"1.8\" height=\"15.0\" fill=\"rgb(223,132,28)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"974.24\" y=\"222.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2233:<listcomp> (138 samples, 0.13%)</title><rect x=\"414.8\" y=\"292\" width=\"1.6\" height=\"15.0\" fill=\"rgb(227,106,4)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"417.81\" y=\"302.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/frame.py:3471:memory_usage (13,034 samples, 12.35%)</title><rect x=\"42.1\" y=\"100\" width=\"145.7\" height=\"15.0\" fill=\"rgb(242,30,24)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"45.13\" y=\"110.5\" >/home/marius/anaco..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/frame.py:665:__init__ (3,382 samples, 3.20%)</title><rect x=\"840.0\" y=\"196\" width=\"37.8\" height=\"15.0\" fill=\"rgb(238,67,21)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"843.02\" y=\"206.5\" >/ho..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<method 'strip' of 'str' objects> (1,140 samples, 1.08%)</title><rect x=\"1036.1\" y=\"180\" width=\"12.7\" height=\"15.0\" fill=\"rgb(252,117,52)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1039.10\" y=\"190.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:308:apply (1,499 samples, 1.42%)</title><rect x=\"348.3\" y=\"228\" width=\"16.8\" height=\"15.0\" fill=\"rgb(217,152,43)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"351.32\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:96:arrays_to_mgr (645 samples, 0.61%)</title><rect x=\"841.2\" y=\"228\" width=\"7.2\" height=\"15.0\" fill=\"rgb(248,129,27)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"844.16\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexes/base.py:478:__new__ (176 samples, 0.17%)</title><rect x=\"434.3\" y=\"260\" width=\"2.0\" height=\"15.0\" fill=\"rgb(225,89,19)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"437.33\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/dtypes/astype.py:56:_astype_nansafe (1,326 samples, 1.26%)</title><rect x=\"350.3\" y=\"292\" width=\"14.8\" height=\"15.0\" fill=\"rgb(248,160,22)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"353.26\" y=\"302.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexes/base.py:478:__new__ (128 samples, 0.12%)</title><rect x=\"403.1\" y=\"212\" width=\"1.4\" height=\"15.0\" fill=\"rgb(230,49,24)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"406.11\" y=\"222.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/frame.py:3776:_ixs (471 samples, 0.45%)</title><rect x=\"45.1\" y=\"164\" width=\"5.3\" height=\"15.0\" fill=\"rgb(215,17,11)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"48.14\" y=\"174.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:506:nested_data_to_arrays (106 samples, 0.10%)</title><rect x=\"971.8\" y=\"228\" width=\"1.2\" height=\"15.0\" fill=\"rgb(224,19,19)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"974.77\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/string.py:34:_get_strcols (4,824 samples, 4.57%)</title><rect x=\"1119.3\" y=\"196\" width=\"54.0\" height=\"15.0\" fill=\"rgb(242,36,46)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1122.33\" y=\"206.5\" >/home..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/series.py:371:__init__ (451 samples, 0.43%)</title><rect x=\"962.6\" y=\"276\" width=\"5.1\" height=\"15.0\" fill=\"rgb(237,7,47)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"965.64\" y=\"286.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/dtypes/missing.py:101:isna (121 samples, 0.11%)</title><rect x=\"1146.7\" y=\"324\" width=\"1.4\" height=\"15.0\" fill=\"rgb(239,86,16)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1149.72\" y=\"334.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexes/base.py:1396:format (130 samples, 0.12%)</title><rect x=\"1171.8\" y=\"244\" width=\"1.5\" height=\"15.0\" fill=\"rgb(247,191,42)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1174.80\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<built-in method pandas._libs.lib.ensure_string_array> (1,094 samples, 1.04%)</title><rect x=\"350.7\" y=\"308\" width=\"12.3\" height=\"15.0\" fill=\"rgb(254,8,40)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"353.73\" y=\"318.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/string.py:119:_join_multiline (363 samples, 0.34%)</title><rect x=\"1115.3\" y=\"196\" width=\"4.0\" height=\"15.0\" fill=\"rgb(248,206,19)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1118.28\" y=\"206.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/series.py:791:array (175 samples, 0.17%)</title><rect x=\"55.2\" y=\"164\" width=\"1.9\" height=\"15.0\" fill=\"rgb(235,76,44)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"58.18\" y=\"174.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/format.py:1332:_format_strings (1,229 samples, 1.16%)</title><rect x=\"1142.5\" y=\"292\" width=\"13.8\" height=\"15.0\" fill=\"rgb(238,87,34)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1145.53\" y=\"302.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexes/range.py:902:_concat (141 samples, 0.13%)</title><rect x=\"1187.2\" y=\"308\" width=\"1.5\" height=\"15.0\" fill=\"rgb(239,98,30)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1190.16\" y=\"318.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2068:create_block_manager_from_column_arrays (1,111 samples, 1.05%)</title><rect x=\"534.8\" y=\"212\" width=\"12.4\" height=\"15.0\" fill=\"rgb(215,215,39)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"537.82\" y=\"222.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:915:<genexpr> (3,098 samples, 2.93%)</title><rect x=\"496.9\" y=\"260\" width=\"34.7\" height=\"15.0\" fill=\"rgb(248,55,43)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"499.92\" y=\"270.5\" >/h..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/blocks.py:588:astype (1,476 samples, 1.40%)</title><rect x=\"348.6\" y=\"244\" width=\"16.5\" height=\"15.0\" fill=\"rgb(247,206,13)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"351.58\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2224:_merge_blocks (458 samples, 0.43%)</title><rect x=\"535.4\" y=\"260\" width=\"5.1\" height=\"15.0\" fill=\"rgb(205,142,43)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"538.36\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:506:nested_data_to_arrays (2,329 samples, 2.21%)</title><rect x=\"848.4\" y=\"212\" width=\"26.0\" height=\"15.0\" fill=\"rgb(207,83,20)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"851.37\" y=\"222.5\" >/..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/blocks.py:588:astype (6,092 samples, 5.77%)</title><rect x=\"885.2\" y=\"276\" width=\"68.1\" height=\"15.0\" fill=\"rgb(229,38,47)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"888.24\" y=\"286.5\" >/home/m..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:1049:close (137 samples, 0.13%)</title><rect x=\"202.6\" y=\"164\" width=\"1.5\" height=\"15.0\" fill=\"rgb(228,0,46)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"205.56\" y=\"174.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/construction.py:519:sanitize_array (181 samples, 0.17%)</title><rect x=\"185.8\" y=\"132\" width=\"2.0\" height=\"15.0\" fill=\"rgb(252,48,33)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"188.80\" y=\"142.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexing.py:978:_getitem_tuple_same_dim (145 samples, 0.14%)</title><rect x=\"1137.5\" y=\"292\" width=\"1.7\" height=\"15.0\" fill=\"rgb(241,72,1)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1140.54\" y=\"302.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<built-in method pandas._libs.lib.ensure_string_array> (206 samples, 0.20%)</title><rect x=\"974.9\" y=\"356\" width=\"2.3\" height=\"15.0\" fill=\"rgb(254,22,6)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"977.89\" y=\"366.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/frame.py:1392:items (557 samples, 0.53%)</title><rect x=\"833.8\" y=\"196\" width=\"6.2\" height=\"15.0\" fill=\"rgb(214,56,27)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"836.79\" y=\"206.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title><__array_function__ internals>:177:vstack (150 samples, 0.14%)</title><rect x=\"538.8\" y=\"276\" width=\"1.7\" height=\"15.0\" fill=\"rgb(230,74,43)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"541.81\" y=\"286.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<pandas._libs.lib.map_infer> (143 samples, 0.14%)</title><rect x=\"1154.7\" y=\"308\" width=\"1.6\" height=\"15.0\" fill=\"rgb(233,112,6)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1157.67\" y=\"318.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/printing.py:193:as_escaped_string (150 samples, 0.14%)</title><rect x=\"1153.0\" y=\"340\" width=\"1.7\" height=\"15.0\" fill=\"rgb(208,121,53)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1155.99\" y=\"350.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:1744:_consolidate_inplace (966 samples, 0.92%)</title><rect x=\"408.8\" y=\"244\" width=\"10.8\" height=\"15.0\" fill=\"rgb(254,4,42)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"411.77\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<built-in method io.open> (864 samples, 0.82%)</title><rect x=\"334.1\" y=\"164\" width=\"9.7\" height=\"15.0\" fill=\"rgb(240,54,51)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"337.10\" y=\"174.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/frame.py:1229:to_string (6,733 samples, 6.38%)</title><rect x=\"1113.5\" y=\"132\" width=\"75.2\" height=\"15.0\" fill=\"rgb(205,178,15)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1116.48\" y=\"142.5\" >/home/ma..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/dtypes/astype.py:158:astype_array (5,516 samples, 5.23%)</title><rect x=\"887.6\" y=\"308\" width=\"61.7\" height=\"15.0\" fill=\"rgb(208,215,23)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"890.60\" y=\"318.5\" >/home/..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/series.py:6094:_reduce (158 samples, 0.15%)</title><rect x=\"188.1\" y=\"148\" width=\"1.7\" height=\"15.0\" fill=\"rgb(218,119,4)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"191.08\" y=\"158.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/frame.py:4384:_box_col_values (195 samples, 0.18%)</title><rect x=\"836.7\" y=\"244\" width=\"2.1\" height=\"15.0\" fill=\"rgb(254,59,37)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"839.65\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/format.py:1909:_make_fixed_width (246 samples, 0.23%)</title><rect x=\"1121.8\" y=\"244\" width=\"2.7\" height=\"15.0\" fill=\"rgb(253,225,40)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1124.77\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexing.py:1006:_getitem_lowerdim (493 samples, 0.47%)</title><rect x=\"1129.9\" y=\"292\" width=\"5.5\" height=\"15.0\" fill=\"rgb(207,139,0)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1132.93\" y=\"302.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<built-in method builtins.print> (7,026 samples, 6.66%)</title><rect x=\"1111.5\" y=\"100\" width=\"78.5\" height=\"15.0\" fill=\"rgb(232,194,18)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1114.46\" y=\"110.5\" >~:0:<buil..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/dtypes/common.py:1268:is_extension_array_dtype (271 samples, 0.26%)</title><rect x=\"880.8\" y=\"244\" width=\"3.0\" height=\"15.0\" fill=\"rgb(248,57,32)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"883.82\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<method 'astype' of 'numpy.ndarray' objects> (190 samples, 0.18%)</title><rect x=\"363.0\" y=\"308\" width=\"2.1\" height=\"15.0\" fill=\"rgb(247,134,47)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"365.95\" y=\"318.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<pandas._libs.lib.memory_usage_of_objects> (10,563 samples, 10.01%)</title><rect x=\"57.1\" y=\"164\" width=\"118.1\" height=\"15.0\" fill=\"rgb(250,56,42)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"60.14\" y=\"174.5\" >~:0:<pandas._l..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/format.py:1909:_make_fixed_width (515 samples, 0.49%)</title><rect x=\"1156.3\" y=\"292\" width=\"5.7\" height=\"15.0\" fill=\"rgb(213,105,0)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1159.26\" y=\"302.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/series.py:371:__init__ (150 samples, 0.14%)</title><rect x=\"1164.1\" y=\"276\" width=\"1.7\" height=\"15.0\" fill=\"rgb(214,65,41)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1167.09\" y=\"286.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<method 'astype' of 'numpy.ndarray' objects> (784 samples, 0.74%)</title><rect x=\"940.5\" y=\"340\" width=\"8.8\" height=\"15.0\" fill=\"rgb(247,26,47)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"943.50\" y=\"350.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2194:_stack_arrays (548 samples, 0.52%)</title><rect x=\"541.1\" y=\"244\" width=\"6.1\" height=\"15.0\" fill=\"rgb(234,134,21)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"544.11\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2137:_form_blocks (604 samples, 0.57%)</title><rect x=\"540.5\" y=\"228\" width=\"6.7\" height=\"15.0\" fill=\"rgb(214,52,14)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"543.48\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:793:to_arrays (2,323 samples, 2.20%)</title><rect x=\"848.4\" y=\"228\" width=\"26.0\" height=\"15.0\" fill=\"rgb(233,208,36)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"851.44\" y=\"238.5\" >/..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/format.py:1938:<listcomp> (122 samples, 0.12%)</title><rect x=\"1159.4\" y=\"308\" width=\"1.4\" height=\"15.0\" fill=\"rgb(225,154,46)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1162.41\" y=\"318.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/blocks.py:588:astype (278 samples, 0.26%)</title><rect x=\"974.1\" y=\"292\" width=\"3.1\" height=\"15.0\" fill=\"rgb(216,120,8)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"977.09\" y=\"302.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/reshape/concat.py:773:_concat_indexes (265 samples, 0.25%)</title><rect x=\"1185.8\" y=\"276\" width=\"2.9\" height=\"15.0\" fill=\"rgb(226,173,37)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1188.77\" y=\"286.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:991:iget (128 samples, 0.12%)</title><rect x=\"49.0\" y=\"180\" width=\"1.4\" height=\"15.0\" fill=\"rgb(228,164,34)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"51.98\" y=\"190.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/arrays/numpy_.py:98:__init__ (114 samples, 0.11%)</title><rect x=\"55.9\" y=\"212\" width=\"1.2\" height=\"15.0\" fill=\"rgb(219,167,53)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"58.86\" y=\"222.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/tools/datetimes.py:721:to_datetime (199 samples, 0.19%)</title><rect x=\"366.2\" y=\"212\" width=\"2.2\" height=\"15.0\" fill=\"rgb(210,110,36)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"369.20\" y=\"222.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<built-in method numpy.core._multiarray_umath.implement_array_function> (280 samples, 0.27%)</title><rect x=\"416.4\" y=\"308\" width=\"3.2\" height=\"15.0\" fill=\"rgb(227,99,36)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"419.44\" y=\"318.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:308:apply (6,187 samples, 5.86%)</title><rect x=\"884.2\" y=\"260\" width=\"69.1\" height=\"15.0\" fill=\"rgb(252,48,43)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"887.18\" y=\"270.5\" >/home/m..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexes/base.py:1396:format (151 samples, 0.14%)</title><rect x=\"1168.5\" y=\"244\" width=\"1.7\" height=\"15.0\" fill=\"rgb(245,97,41)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1171.55\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexing.py:1006:_getitem_lowerdim (173 samples, 0.16%)</title><rect x=\"1176.8\" y=\"228\" width=\"2.0\" height=\"15.0\" fill=\"rgb(248,82,22)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1179.82\" y=\"238.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/generic.py:12031:_min_count_stat_function (173 samples, 0.16%)</title><rect x=\"187.9\" y=\"132\" width=\"1.9\" height=\"15.0\" fill=\"rgb(208,93,48)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"190.91\" y=\"142.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/numpy/core/shape_base.py:223:vstack (216 samples, 0.20%)</title><rect x=\"417.2\" y=\"324\" width=\"2.4\" height=\"15.0\" fill=\"rgb(222,6,50)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"420.16\" y=\"334.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title><__array_function__ internals>:177:vstack (288 samples, 0.27%)</title><rect x=\"416.4\" y=\"292\" width=\"3.2\" height=\"15.0\" fill=\"rgb(252,162,42)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"419.35\" y=\"302.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/frame.py:1123:__repr__ (6,884 samples, 6.52%)</title><rect x=\"1113.1\" y=\"116\" width=\"76.9\" height=\"15.0\" fill=\"rgb(243,137,37)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1116.05\" y=\"126.5\" >/home/ma..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/frame.py:4384:_box_col_values (235 samples, 0.22%)</title><rect x=\"46.4\" y=\"180\" width=\"2.6\" height=\"15.0\" fill=\"rgb(248,122,39)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"49.35\" y=\"190.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexes/base.py:1396:format (155 samples, 0.15%)</title><rect x=\"1165.8\" y=\"260\" width=\"1.7\" height=\"15.0\" fill=\"rgb(208,92,0)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1168.77\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:1744:_consolidate_inplace (129 samples, 0.12%)</title><rect x=\"874.6\" y=\"244\" width=\"1.5\" height=\"15.0\" fill=\"rgb(206,66,25)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"877.65\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:1068:<listcomp> (161 samples, 0.15%)</title><rect x=\"532.1\" y=\"260\" width=\"1.8\" height=\"15.0\" fill=\"rgb(247,176,8)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"535.10\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:980:read (68,680 samples, 65.06%)</title><rect x=\"343.8\" y=\"116\" width=\"767.7\" height=\"15.0\" fill=\"rgb(233,42,25)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"346.76\" y=\"126.5\" >/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:980:read</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:423:dict_to_mgr (2,742 samples, 2.60%)</title><rect x=\"401.9\" y=\"196\" width=\"30.6\" height=\"15.0\" fill=\"rgb(217,141,43)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"404.90\" y=\"206.5\" >/h..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/string.py:67:_insert_dot_separators (270 samples, 0.26%)</title><rect x=\"1170.2\" y=\"212\" width=\"3.1\" height=\"15.0\" fill=\"rgb(217,34,9)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1173.24\" y=\"222.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/formats/format.py:1328:get_result (1,829 samples, 1.73%)</title><rect x=\"1141.6\" y=\"276\" width=\"20.4\" height=\"15.0\" fill=\"rgb(214,103,2)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1144.58\" y=\"286.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/common.py:652:get_handle (988 samples, 0.94%)</title><rect x=\"332.7\" y=\"148\" width=\"11.1\" height=\"15.0\" fill=\"rgb(217,95,39)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"335.72\" y=\"158.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:896:_preprocess_data (11,571 samples, 10.96%)</title><rect x=\"202.3\" y=\"132\" width=\"129.3\" height=\"15.0\" fill=\"rgb(220,182,39)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"205.26\" y=\"142.5\" >/home/marius/ana..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/reshape/concat.py:713:_get_concat_axis (275 samples, 0.26%)</title><rect x=\"1185.7\" y=\"260\" width=\"3.0\" height=\"15.0\" fill=\"rgb(230,0,1)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1188.66\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/tools/datetimes.py:369:_convert_listlike_datetimes (269 samples, 0.25%)</title><rect x=\"967.7\" y=\"260\" width=\"3.0\" height=\"15.0\" fill=\"rgb(210,79,52)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"970.68\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/dtypes/astype.py:56:_astype_nansafe (5,471 samples, 5.18%)</title><rect x=\"888.1\" y=\"324\" width=\"61.2\" height=\"15.0\" fill=\"rgb(253,161,9)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"891.11\" y=\"334.5\" >/home/..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2068:create_block_manager_from_column_arrays (550 samples, 0.52%)</title><rect x=\"842.2\" y=\"244\" width=\"6.2\" height=\"15.0\" fill=\"rgb(211,74,13)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"845.22\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/reshape/concat.py:698:<listcomp> (121 samples, 0.11%)</title><rect x=\"177.9\" y=\"180\" width=\"1.4\" height=\"15.0\" fill=\"rgb(254,42,48)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"180.94\" y=\"190.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/dtypes/base.py:510:find (107 samples, 0.10%)</title><rect x=\"955.7\" y=\"260\" width=\"1.2\" height=\"15.0\" fill=\"rgb(211,51,9)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"958.68\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:2224:_merge_blocks (226 samples, 0.21%)</title><rect x=\"842.5\" y=\"292\" width=\"2.5\" height=\"15.0\" fill=\"rgb(213,23,37)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"845.50\" y=\"302.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:1422:_try_convert_types (13,777 samples, 13.05%)</title><rect x=\"823.2\" y=\"164\" width=\"154.0\" height=\"15.0\" fill=\"rgb(238,49,52)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"826.20\" y=\"174.5\" >/home/marius/anacon..</text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/managers.py:1744:_consolidate_inplace (248 samples, 0.23%)</title><rect x=\"842.3\" y=\"260\" width=\"2.7\" height=\"15.0\" fill=\"rgb(207,35,15)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"845.25\" y=\"270.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/dtypes/astype.py:158:astype_array (252 samples, 0.24%)</title><rect x=\"974.4\" y=\"324\" width=\"2.8\" height=\"15.0\" fill=\"rgb(253,86,8)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"977.38\" y=\"334.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title><string>:1:<module> (105,529 samples, 99.97%)</title><rect x=\"10.4\" y=\"68\" width=\"1179.6\" height=\"15.0\" fill=\"rgb(212,147,28)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"13.40\" y=\"78.5\" ><string>:1:<module></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/indexing.py:1139:__getitem__ (368 samples, 0.35%)</title><rect x=\"1174.6\" y=\"196\" width=\"4.2\" height=\"15.0\" fill=\"rgb(213,157,42)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"1177.64\" y=\"206.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/io/json/_json.py:1432:_try_convert_dates (582 samples, 0.55%)</title><rect x=\"970.7\" y=\"180\" width=\"6.5\" height=\"15.0\" fill=\"rgb(246,189,1)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"973.69\" y=\"190.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>/home/marius/anaconda3/lib/python3.11/site-packages/pandas/core/internals/construction.py:793:to_arrays (106 samples, 0.10%)</title><rect x=\"971.8\" y=\"244\" width=\"1.2\" height=\"15.0\" fill=\"rgb(231,115,34)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"974.77\" y=\"254.5\" ></text>\n",
|
|
"</g>\n",
|
|
"<g >\n",
|
|
"<title>~:0:<built-in method numpy.core._multiarray_umath.implement_array_function> (207 samples, 0.20%)</title><rect x=\"417.3\" y=\"356\" width=\"2.3\" height=\"15.0\" fill=\"rgb(251,181,31)\" rx=\"2\" ry=\"2\" />\n",
|
|
"<text x=\"420.26\" y=\"366.5\" ></text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"execution_count": 51,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"%%flame -q --inverted\n",
|
|
"test_pandas()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 52,
|
|
"id": "4d47d7ec-d3f1-4fac-9933-ec330651a6f4",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
" @timestamp host.hostname host.ip \\\n",
|
|
"0 2024-05-15T15:57:18.471Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"1 2024-05-15T15:57:18.471Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"2 2024-05-15T15:57:18.471Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"3 2024-05-15T15:57:18.471Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"4 2024-05-15T15:57:18.471Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"... ... ... ... \n",
|
|
"7995 2024-05-15T16:10:07.128Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"7996 2024-05-15T16:10:07.136Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"7997 2024-05-15T16:10:07.136Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"7998 2024-05-15T16:10:07.149Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"7999 2024-05-15T16:10:07.149Z win10 fe80::24b4:3691:44a6:38a1 \n",
|
|
"\n",
|
|
" log.level winlog.event_id winlog.task \\\n",
|
|
"0 information 13 Registry value set (rule: RegistryEvent) \n",
|
|
"1 information 13 Registry value set (rule: RegistryEvent) \n",
|
|
"2 information 13 Registry value set (rule: RegistryEvent) \n",
|
|
"3 information 13 Registry value set (rule: RegistryEvent) \n",
|
|
"4 information 13 Registry value set (rule: RegistryEvent) \n",
|
|
"... ... ... ... \n",
|
|
"7995 information 4663 Removable Storage \n",
|
|
"7996 information 4663 Removable Storage \n",
|
|
"7997 information 4663 Removable Storage \n",
|
|
"7998 information 4663 Removable Storage \n",
|
|
"7999 information 4663 Removable Storage \n",
|
|
"\n",
|
|
" message \n",
|
|
"0 Registry value set:\\nRuleName: InvDB-Ver\\nEven... \n",
|
|
"1 Registry value set:\\nRuleName: InvDB-Path\\nEve... \n",
|
|
"2 Registry value set:\\nRuleName: InvDB-Pub\\nEven... \n",
|
|
"3 Registry value set:\\nRuleName: InvDB-CompileTi... \n",
|
|
"4 Registry value set:\\nRuleName: InvDB-Ver\\nEven... \n",
|
|
"... ... \n",
|
|
"7995 An attempt was made to access an object.\\n\\nSu... \n",
|
|
"7996 An attempt was made to access an object.\\n\\nSu... \n",
|
|
"7997 An attempt was made to access an object.\\n\\nSu... \n",
|
|
"7998 An attempt was made to access an object.\\n\\nSu... \n",
|
|
"7999 An attempt was made to access an object.\\n\\nSu... \n",
|
|
"\n",
|
|
"[8000 rows x 7 columns]\n",
|
|
"Pandas DataFarme number of rows: 8000\n",
|
|
"Pandas DataFrame memory usage: 7.56 MB\n",
|
|
" "
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
" 46681 function calls (46472 primitive calls) in 0.113 seconds\n",
|
|
"\n",
|
|
" Ordered by: internal time\n",
|
|
"\n",
|
|
" ncalls tottime percall cumtime percall filename:lineno(function)\n",
|
|
" 1 0.029 0.029 0.029 0.029 {built-in method pandas._libs.json.ujson_loads}\n",
|
|
" 6 0.010 0.002 0.010 0.002 {pandas._libs.lib.memory_usage_of_objects}\n",
|
|
" 1 0.009 0.009 0.012 0.012 {method 'read' of '_io.TextIOWrapper' objects}\n",
|
|
" 8001 0.005 0.000 0.005 0.000 construction.py:915(<genexpr>)\n",
|
|
" 1 0.005 0.005 0.005 0.005 {pandas._libs.lib.dicts_to_array}\n",
|
|
" 94 0.004 0.000 0.004 0.000 {method 'split' of 'str' objects}\n",
|
|
" 1 0.003 0.003 0.009 0.009 {pandas._libs.lib.fast_unique_multiple_list_gen}\n",
|
|
" 1 0.003 0.003 0.010 0.010 _json.py:960(_combine_lines)\n",
|
|
" 1 0.003 0.003 0.003 0.003 {built-in method _codecs.utf_8_decode}\n",
|
|
" 64/8 0.003 0.000 0.003 0.000 {method 'join' of 'str' objects}\n",
|
|
" 1 0.003 0.003 0.113 0.113 <string>:1(<module>)\n",
|
|
" 1 0.002 0.002 0.049 0.049 _json.py:1360(_parse)\n",
|
|
" 6 0.002 0.000 0.002 0.000 {built-in method pandas._libs.lib.ensure_string_array}\n",
|
|
" 4 0.002 0.000 0.002 0.001 managers.py:2194(_stack_arrays)\n",
|
|
" 8002 0.002 0.000 0.003 0.000 _json.py:965(<genexpr>)\n",
|
|
" 1 0.002 0.002 0.002 0.002 construction.py:922(<listcomp>)\n",
|
|
" 1 0.001 0.001 0.004 0.004 _json.py:965(<listcomp>)\n",
|
|
" 1 0.001 0.001 0.091 0.091 _json.py:500(read_json)\n",
|
|
" 8001 0.001 0.000 0.001 0.000 {method 'strip' of 'str' objects}\n",
|
|
" 1 0.001 0.001 0.001 0.001 {built-in method io.open}\n",
|
|
" 9 0.001 0.000 0.001 0.000 {method 'astype' of 'numpy.ndarray' objects}\n",
|
|
" 2 0.001 0.001 0.002 0.001 managers.py:2224(_merge_blocks)\n",
|
|
" 53/51 0.001 0.000 0.001 0.000 {built-in method numpy.core._multiarray_umath.implement_array_function}\n",
|
|
" 1 0.001 0.001 0.010 0.010 _json.py:1422(_try_convert_types)\n",
|
|
"2422/2396 0.001 0.000 0.001 0.000 {built-in method builtins.isinstance}\n",
|
|
" 8001 0.001 0.000 0.001 0.000 {method 'keys' of 'dict' objects}\n",
|
|
" 32 0.001 0.000 0.001 0.000 generic.py:6147(__finalize__)\n",
|
|
" 1 0.001 0.001 0.001 0.001 {built-in method posix.stat}\n",
|
|
" 2 0.000 0.000 0.002 0.001 _json.py:1282(_try_convert_to_date)\n",
|
|
" 2 0.000 0.000 0.005 0.003 construction.py:96(arrays_to_mgr)\n",
|
|
" 98 0.000 0.000 0.000 0.000 generic.py:6206(__setattr__)\n",
|
|
" 24 0.000 0.000 0.001 0.000 base.py:510(find)\n",
|
|
"1415/1290 0.000 0.000 0.000 0.000 {built-in method builtins.len}\n",
|
|
" 29 0.000 0.000 0.001 0.000 {pandas._libs.lib.maybe_convert_objects}\n",
|
|
" 1 0.000 0.000 0.016 0.016 construction.py:793(to_arrays)\n",
|
|
" 21 0.000 0.000 0.000 0.000 managers.py:991(iget)\n",
|
|
" 661 0.000 0.000 0.000 0.000 format.py:428(len)\n",
|
|
" 1 0.000 0.000 0.000 0.000 socket.py:543(send)\n",
|
|
" 21 0.000 0.000 0.001 0.000 common.py:1587(pandas_dtype)\n",
|
|
" 47 0.000 0.000 0.000 0.000 {built-in method numpy.empty}\n",
|
|
" 93 0.000 0.000 0.000 0.000 config.py:127(_get_single_key)\n",
|
|
" 6 0.000 0.000 0.001 0.000 format.py:1332(_format_strings)\n",
|
|
" 198 0.000 0.000 0.000 0.000 base.py:236(construct_from_string)\n",
|
|
" 41 0.000 0.000 0.000 0.000 generic.py:274(__init__)\n",
|
|
" 5 0.000 0.000 0.001 0.000 base.py:478(__new__)\n",
|
|
" 19 0.000 0.000 0.001 0.000 construction.py:519(sanitize_array)\n",
|
|
" 7 0.000 0.000 0.001 0.000 series.py:371(__init__)\n",
|
|
" 18 0.000 0.000 0.000 0.000 {method 'reduce' of 'numpy.ufunc' objects}\n",
|
|
" 67 0.000 0.000 0.000 0.000 printing.py:162(pprint_thing)\n",
|
|
" 60 0.000 0.000 0.001 0.000 format.py:1355(_format)\n",
|
|
" 4 0.000 0.000 0.000 0.000 {pandas._libs.tslib.array_with_unit_to_datetime}\n",
|
|
" 63 0.000 0.000 0.000 0.000 base.py:5350(__getitem__)\n",
|
|
" 89 0.000 0.000 0.001 0.000 config.py:145(_get_option)\n",
|
|
" 91 0.000 0.000 0.000 0.000 config.py:633(_get_root)\n",
|
|
" 67 0.000 0.000 0.000 0.000 printing.py:193(as_escaped_string)\n",
|
|
" 182 0.000 0.000 0.000 0.000 config.py:647(_get_deprecated_option)\n",
|
|
" 212 0.000 0.000 0.000 0.000 generic.py:42(_instancecheck)\n",
|
|
" 6 0.000 0.000 0.000 0.000 {pandas._libs.lib.map_infer}\n",
|
|
" 212 0.000 0.000 0.000 0.000 generic.py:37(_check)\n",
|
|
" 21 0.000 0.000 0.001 0.000 frame.py:4402(_get_item_cache)\n",
|
|
" 1 0.000 0.000 0.004 0.004 format.py:843(_get_strcols_without_index)\n",
|
|
" 21 0.000 0.000 0.001 0.000 frame.py:3776(_ixs)\n",
|
|
" 35 0.000 0.000 0.000 0.000 numeric.py:290(full)\n",
|
|
" 18 0.000 0.000 0.001 0.000 format.py:1909(_make_fixed_width)\n",
|
|
" 2 0.000 0.000 0.002 0.001 managers.py:2137(_form_blocks)\n",
|
|
" 9 0.000 0.000 0.002 0.000 format.py:1217(format_array)\n",
|
|
" 10 0.000 0.000 0.003 0.000 astype.py:56(_astype_nansafe)\n",
|
|
" 61 0.000 0.000 0.000 0.000 {built-in method builtins.max}\n",
|
|
" 180 0.000 0.000 0.000 0.000 format.py:1932(just)\n",
|
|
" 14 0.000 0.000 0.000 0.000 base.py:5300(__contains__)\n",
|
|
" 15 0.000 0.000 0.000 0.000 {built-in method numpy.array}\n",
|
|
" 67 0.000 0.000 0.000 0.000 inference.py:373(is_sequence)\n",
|
|
" 9 0.000 0.000 0.001 0.000 indexing.py:1006(_getitem_lowerdim)\n",
|
|
" 2 0.000 0.000 0.021 0.011 frame.py:665(__init__)\n",
|
|
" 198 0.000 0.000 0.000 0.000 format.py:1923(<genexpr>)\n",
|
|
" 21 0.000 0.000 0.001 0.000 frame.py:4384(_box_col_values)\n",
|
|
" 73 0.000 0.000 0.000 0.000 missing.py:184(_isna)\n",
|
|
" 24 0.000 0.000 0.000 0.000 warnings.py:466(__enter__)\n",
|
|
" 24 0.000 0.000 0.001 0.000 frame.py:1392(items)\n",
|
|
" 88 0.000 0.000 0.001 0.000 config.py:271(__call__)\n",
|
|
" 7 0.000 0.000 0.003 0.000 format.py:890(format_col)\n",
|
|
" 301 0.000 0.000 0.000 0.000 {built-in method builtins.getattr}\n",
|
|
" 24 0.000 0.000 0.000 0.000 warnings.py:181(_add_filter)\n",
|
|
" 2 0.000 0.000 0.000 0.000 {pandas._libs.lib.array_equivalent_object}\n",
|
|
" 17 0.000 0.000 0.000 0.000 cast.py:1147(maybe_infer_to_datetimelike)\n",
|
|
" 9 0.000 0.000 0.007 0.001 _json.py:1204(_try_convert_data)\n",
|
|
" 7 0.000 0.000 0.004 0.001 managers.py:308(apply)\n",
|
|
" 5 0.000 0.000 0.000 0.000 printing.py:28(adjoin)\n",
|
|
" 18 0.000 0.000 0.000 0.000 format.py:1938(<listcomp>)\n",
|
|
" 56 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_list_like}\n",
|
|
" 48 0.000 0.000 0.000 0.000 {built-in method numpy.asarray}\n",
|
|
" 62 0.000 0.000 0.000 0.000 {built-in method builtins.all}\n",
|
|
" 9 0.000 0.000 0.001 0.000 indexing.py:1139(__getitem__)\n",
|
|
" 2 0.000 0.000 0.010 0.005 _json.py:1396(_process_converter)\n",
|
|
" 89 0.000 0.000 0.000 0.000 config.py:686(_warn_if_deprecated)\n",
|
|
" 35 0.000 0.000 0.000 0.000 <__array_function__ internals>:177(copyto)\n",
|
|
" 15 0.000 0.000 0.000 0.000 blocks.py:2388(new_block)\n",
|
|
" 15 0.000 0.000 0.000 0.000 inference.py:273(is_dict_like)\n",
|
|
" 6 0.000 0.000 0.000 0.000 base.py:836(__iter__)\n",
|
|
" 7 0.000 0.000 0.010 0.001 base.py:1135(_memory_usage)\n",
|
|
" 24 0.000 0.000 0.000 0.000 {method 'remove' of 'list' objects}\n",
|
|
" 20 0.000 0.000 0.000 0.000 printing.py:65(<listcomp>)\n",
|
|
" 7 0.000 0.000 0.000 0.000 blocks.py:247(make_block)\n",
|
|
" 60 0.000 0.000 0.000 0.000 {built-in method _abc._abc_instancecheck}\n",
|
|
" 8 0.000 0.000 0.000 0.000 managers.py:1825(from_array)\n",
|
|
" 201 0.000 0.000 0.000 0.000 {method 'replace' of 'str' objects}\n",
|
|
" 28 0.000 0.000 0.000 0.000 printing.py:69(<listcomp>)\n",
|
|
" 2 0.000 0.000 0.001 0.000 concat.py:618(get_result)\n",
|
|
" 41 0.000 0.000 0.000 0.000 flags.py:53(__init__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 construction.py:928(_finalize_columns_and_data)\n",
|
|
" 1 0.000 0.000 0.110 0.110 1231667944.py:1(test_pandas)\n",
|
|
" 9 0.000 0.000 0.001 0.000 indexing.py:1651(_getitem_tuple)\n",
|
|
" 40 0.000 0.000 0.000 0.000 {built-in method builtins.any}\n",
|
|
" 31 0.000 0.000 0.000 0.000 generic.py:562(_get_axis)\n",
|
|
" 93 0.000 0.000 0.000 0.000 config.py:674(_translate_key)\n",
|
|
" 16 0.000 0.000 0.000 0.000 format.py:903(_get_formatter)\n",
|
|
" 14 0.000 0.000 0.000 0.000 numpy_.py:98(__init__)\n",
|
|
" 93 0.000 0.000 0.000 0.000 config.py:615(_select_options)\n",
|
|
" 32 0.000 0.000 0.000 0.000 managers.py:1960(internal_values)\n",
|
|
" 3 0.000 0.000 0.000 0.000 {method '_rebuild_blknos_and_blklocs' of 'pandas._libs.internals.BlockManager' objects}\n",
|
|
" 10 0.000 0.000 0.003 0.000 astype.py:158(astype_array)\n",
|
|
" 32 0.000 0.000 0.000 0.000 generic.py:335(_from_mgr)\n",
|
|
" 16 0.000 0.000 0.000 0.000 blocks.py:2317(maybe_coerce_values)\n",
|
|
" 60 0.000 0.000 0.000 0.000 __init__.py:33(using_copy_on_write)\n",
|
|
" 14 0.000 0.000 0.000 0.000 {method 'get_loc' of 'pandas._libs.index.IndexEngine' objects}\n",
|
|
" 6 0.000 0.000 0.000 0.000 {built-in method pandas._libs.missing.isnaobj}\n",
|
|
" 7 0.000 0.000 0.005 0.001 generic.py:6368(astype)\n",
|
|
" 72 0.000 0.000 0.000 0.000 base.py:909(__len__)\n",
|
|
" 2 0.000 0.000 0.000 0.000 construction.py:596(_homogenize)\n",
|
|
" 48 0.000 0.000 0.000 0.000 printing.py:60(justify)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'close' of '_io.TextIOWrapper' objects}\n",
|
|
" 7 0.000 0.000 0.004 0.001 blocks.py:588(astype)\n",
|
|
" 1 0.000 0.000 0.000 0.000 concat.py:94(concatenate_managers)\n",
|
|
" 9 0.000 0.000 0.001 0.000 indexing.py:1681(_getitem_axis)\n",
|
|
" 21 0.000 0.000 0.000 0.000 frame.py:654(_constructor_sliced_from_mgr)\n",
|
|
" 48 0.000 0.000 0.000 0.000 format.py:431(justify)\n",
|
|
" 73 0.000 0.000 0.000 0.000 missing.py:101(isna)\n",
|
|
" 140 0.000 0.000 0.000 0.000 {built-in method builtins.hasattr}\n",
|
|
" 4 0.000 0.000 0.001 0.000 datetimes.py:721(to_datetime)\n",
|
|
" 6 0.000 0.000 0.000 0.000 iostream.py:610(write)\n",
|
|
" 19 0.000 0.000 0.001 0.000 base.py:7521(ensure_index)\n",
|
|
" 20 0.000 0.000 0.000 0.000 blocks.py:2346(get_block_type)\n",
|
|
" 63 0.000 0.000 0.000 0.000 common.py:149(cast_scalar_indexer)\n",
|
|
" 142 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_scalar}\n",
|
|
" 14 0.000 0.000 0.000 0.000 managers.py:1949(dtype)\n",
|
|
" 2 0.000 0.000 0.000 0.000 {method 'get_slice' of 'pandas._libs.internals.BlockManager' objects}\n",
|
|
" 136 0.000 0.000 0.000 0.000 {built-in method builtins.issubclass}\n",
|
|
" 1 0.000 0.000 0.015 0.015 construction.py:891(_list_of_dict_to_arrays)\n",
|
|
" 24 0.000 0.000 0.000 0.000 warnings.py:487(__exit__)\n",
|
|
" 9 0.000 0.000 0.000 0.000 indexing.py:931(_validate_tuple_indexer)\n",
|
|
" 21 0.000 0.000 0.000 0.000 series.py:1372(_set_as_cached)\n",
|
|
" 7 0.000 0.000 0.000 0.000 _dtype.py:344(_name_get)\n",
|
|
" 7 0.000 0.000 0.000 0.000 missing.py:261(_isna_array)\n",
|
|
" 18 0.000 0.000 0.000 0.000 dtypes.py:1266(construct_from_string)\n",
|
|
" 7 0.000 0.000 0.000 0.000 warnings.py:130(filterwarnings)\n",
|
|
" 14 0.000 0.000 0.000 0.000 base.py:3763(get_loc)\n",
|
|
" 6 0.000 0.000 0.000 0.000 missing.py:380(notna)\n",
|
|
" 30 0.000 0.000 0.000 0.000 format.py:1617(<lambda>)\n",
|
|
" 27 0.000 0.000 0.000 0.000 construction.py:485(ensure_wrapped_if_datetimelike)\n",
|
|
" 3 0.000 0.000 0.000 0.000 base.py:1418(_format_with_header)\n",
|
|
" 23 0.000 0.000 0.000 0.000 {method 'match' of 're.Pattern' objects}\n",
|
|
" 18 0.000 0.000 0.000 0.000 dtypes.py:814(construct_from_string)\n",
|
|
" 9 0.000 0.000 0.000 0.000 indexing.py:1614(_is_scalar_access)\n",
|
|
" 18 0.000 0.000 0.000 0.000 dtypes.py:332(construct_from_string)\n",
|
|
" 66 0.000 0.000 0.000 0.000 {built-in method pandas._libs.missing.checknull}\n",
|
|
" 10 0.000 0.000 0.000 0.000 format.py:479(get_adjustment)\n",
|
|
" 7 0.000 0.000 0.000 0.000 base.py:649(_simple_new)\n",
|
|
" 217 0.000 0.000 0.000 0.000 {method 'ljust' of 'str' objects}\n",
|
|
" 1 0.000 0.000 0.075 0.075 _json.py:980(read)\n",
|
|
" 16 0.000 0.000 0.000 0.000 common.py:137(is_object_dtype)\n",
|
|
" 32 0.000 0.000 0.000 0.000 flags.py:89(allows_duplicate_labels)\n",
|
|
" 24 0.000 0.000 0.000 0.000 warnings.py:440(__init__)\n",
|
|
" 1 0.000 0.000 0.113 0.113 {built-in method builtins.exec}\n",
|
|
" 18 0.000 0.000 0.000 0.000 dtypes.py:1021(construct_from_string)\n",
|
|
" 9 0.000 0.000 0.002 0.000 format.py:1328(get_result)\n",
|
|
" 1 0.000 0.000 0.000 0.000 string.py:119(_join_multiline)\n",
|
|
" 3 0.000 0.000 0.000 0.000 _strptime.py:309(_strptime)\n",
|
|
" 30 0.000 0.000 0.000 0.000 construction.py:420(extract_array)\n",
|
|
" 21 0.000 0.000 0.000 0.000 blocks.py:1007(iget)\n",
|
|
" 1 0.000 0.000 0.012 0.012 frame.py:3471(memory_usage)\n",
|
|
" 76 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_np_dtype}\n",
|
|
" 77 0.000 0.000 0.000 0.000 format.py:884(<genexpr>)\n",
|
|
" 10 0.000 0.000 0.000 0.000 generic.py:760(_set_axis)\n",
|
|
" 18 0.000 0.000 0.000 0.000 indexing.py:1536(_validate_key)\n",
|
|
" 17 0.000 0.000 0.000 0.000 warnings.py:165(simplefilter)\n",
|
|
" 4 0.000 0.000 0.000 0.000 _asarray.py:31(require)\n",
|
|
" 25 0.000 0.000 0.000 0.000 common.py:1425(_is_dtype_type)\n",
|
|
" 6 0.000 0.000 0.000 0.000 concat.py:322(_get_block_for_concat_plan)\n",
|
|
" 60 0.000 0.000 0.000 0.000 <frozen abc>:117(__instancecheck__)\n",
|
|
" 7 0.000 0.000 0.004 0.001 astype.py:192(astype_array_safe)\n",
|
|
" 25 0.000 0.000 0.000 0.000 common.py:96(is_bool_indexer)\n",
|
|
" 1 0.000 0.000 0.001 0.001 common.py:652(get_handle)\n",
|
|
" 7 0.000 0.000 0.000 0.000 construction.py:1028(convert)\n",
|
|
" 157 0.000 0.000 0.000 0.000 {method 'append' of 'list' objects}\n",
|
|
" 2 0.000 0.000 0.000 0.000 concat.py:403(__init__)\n",
|
|
" 9 0.000 0.000 0.000 0.000 indexing.py:2678(check_dict_or_set_indexers)\n",
|
|
" 2 0.000 0.000 0.000 0.000 base.py:1683(_validate_names)\n",
|
|
" 3 0.000 0.000 0.000 0.000 cast.py:119(maybe_convert_platform)\n",
|
|
" 3 0.000 0.000 0.000 0.000 {built-in method numpy.arange}\n",
|
|
" 14 0.000 0.000 0.000 0.000 managers.py:1964(array_values)\n",
|
|
" 103 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_integer}\n",
|
|
" 4 0.000 0.000 0.001 0.000 base.py:1038(astype)\n",
|
|
" 7 0.000 0.000 0.000 0.000 string.py:129(<listcomp>)\n",
|
|
" 1 0.000 0.000 0.062 0.062 _json.py:1022(_get_object_parser)\n",
|
|
" 1 0.000 0.000 0.000 0.000 concat.py:296(_get_combined_plan)\n",
|
|
" 47 0.000 0.000 0.000 0.000 range.py:963(__len__)\n",
|
|
" 2 0.000 0.000 0.000 0.000 parse.py:374(urlparse)\n",
|
|
" 6 0.000 0.000 0.000 0.000 concat.py:389(is_na)\n",
|
|
" 39 0.000 0.000 0.000 0.000 inference.py:334(is_hashable)\n",
|
|
" 6 0.000 0.000 0.000 0.000 fromnumeric.py:69(_wrapreduction)\n",
|
|
" 7 0.000 0.000 0.004 0.001 managers.py:405(astype)\n",
|
|
" 2 0.000 0.000 0.000 0.000 format.py:956(_get_formatted_index)\n",
|
|
" 3 0.000 0.000 0.000 0.000 cast.py:1544(construct_1d_object_array_from_listlike)\n",
|
|
" 8 0.000 0.000 0.000 0.000 range.py:198(_simple_new)\n",
|
|
" 9 0.000 0.000 0.000 0.000 common.py:1066(is_numeric_dtype)\n",
|
|
" 5 0.000 0.000 0.000 0.000 format.py:434(adjoin)\n",
|
|
" 4 0.000 0.000 0.001 0.000 datetimes.py:216(_maybe_cache)\n",
|
|
" 49 0.000 0.000 0.000 0.000 {built-in method __new__ of type object at 0x860f60}\n",
|
|
" 36 0.000 0.000 0.000 0.000 managers.py:1799(__init__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 format.py:915(_get_formatted_column_labels)\n",
|
|
" 2 0.000 0.000 0.000 0.000 generic.py:4296(_slice)\n",
|
|
" 9 0.000 0.000 0.000 0.000 series.py:653(name)\n",
|
|
" 18 0.000 0.000 0.000 0.000 string_.py:135(construct_from_string)\n",
|
|
" 8 0.000 0.000 0.000 0.000 series.py:581(_constructor_from_mgr)\n",
|
|
" 6 0.000 0.000 0.000 0.000 __init__.py:272(_compile)\n",
|
|
" 61 0.000 0.000 0.000 0.000 printing.py:57(<genexpr>)\n",
|
|
" 4 0.000 0.000 0.000 0.000 datetimes.py:526(_to_datetime_with_unit)\n",
|
|
" 2 0.000 0.000 0.004 0.002 managers.py:2068(create_block_manager_from_column_arrays)\n",
|
|
" 27 0.000 0.000 0.000 0.000 indexing.py:1144(<genexpr>)\n",
|
|
" 2 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_all_arraylike}\n",
|
|
" 10 0.000 0.000 0.000 0.000 base.py:73(_validate_set_axis)\n",
|
|
" 32 0.000 0.000 0.000 0.000 series.py:750(_values)\n",
|
|
" 154 0.000 0.000 0.000 0.000 {method 'rjust' of 'str' objects}\n",
|
|
" 18 0.000 0.000 0.000 0.000 dtypes.py:2180(construct_from_string)\n",
|
|
" 14 0.000 0.000 0.000 0.000 indexing.py:1629(_validate_integer)\n",
|
|
" 6 0.000 0.000 0.000 0.000 {method 'reshape' of 'numpy.ndarray' objects}\n",
|
|
" 1 0.000 0.000 0.011 0.011 frame.py:3561(<listcomp>)\n",
|
|
" 5 0.000 0.000 0.000 0.000 base.py:574(_ensure_array)\n",
|
|
" 1 0.000 0.000 0.000 0.000 _parser.py:666(_parse)\n",
|
|
" 1 0.000 0.000 0.007 0.007 frame.py:1229(to_string)\n",
|
|
" 72 0.000 0.000 0.000 0.000 {built-in method _warnings._filters_mutated}\n",
|
|
" 71 0.000 0.000 0.000 0.000 {method 'get' of 'dict' objects}\n",
|
|
" 21 0.000 0.000 0.000 0.000 frame.py:651(_sliced_from_mgr)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {built-in method _operator.gt}\n",
|
|
" 1 0.000 0.000 0.000 0.000 string.py:89(_insert_dot_separator_vertical)\n",
|
|
" 4 0.000 0.000 0.000 0.000 _asarray.py:112(<setcomp>)\n",
|
|
" 1 0.000 0.000 0.003 0.003 <frozen codecs>:319(decode)\n",
|
|
" 3 0.000 0.000 0.000 0.000 format.py:1619(<listcomp>)\n",
|
|
" 40 0.000 0.000 0.000 0.000 inference.py:300(<genexpr>)\n",
|
|
" 7 0.000 0.000 0.000 0.000 common.py:1268(is_extension_array_dtype)\n",
|
|
" 5 0.000 0.000 0.000 0.000 cast.py:1483(construct_1d_arraylike_from_scalar)\n",
|
|
" 14 0.000 0.000 0.000 0.000 blocks.py:2241(array_values)\n",
|
|
" 3 0.000 0.000 0.000 0.000 _parser.py:77(get_token)\n",
|
|
" 13 0.000 0.000 0.000 0.000 common.py:296(maybe_iterable_to_list)\n",
|
|
" 7 0.000 0.000 0.000 0.000 managers.py:1812(from_blocks)\n",
|
|
" 18 0.000 0.000 0.000 0.000 dtypes.py:1789(construct_from_string)\n",
|
|
" 1 0.000 0.000 0.000 0.000 array_ops.py:290(comparison_op)\n",
|
|
" 38 0.000 0.000 0.000 0.000 generic.py:548(_get_axis_number)\n",
|
|
" 5 0.000 0.000 0.000 0.000 base.py:69(shape)\n",
|
|
" 48 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects}\n",
|
|
" 14 0.000 0.000 0.000 0.000 dtypes.py:1407(__init__)\n",
|
|
" 9 0.000 0.000 0.000 0.000 numerictypes.py:356(issubdtype)\n",
|
|
" 12 0.000 0.000 0.000 0.000 base.py:7616(maybe_extract_name)\n",
|
|
" 1 0.000 0.000 0.000 0.000 expressions.py:95(_evaluate_numexpr)\n",
|
|
" 1 0.000 0.000 0.000 0.000 iostream.py:243(schedule)\n",
|
|
" 1 0.000 0.000 0.000 0.000 range.py:902(_concat)\n",
|
|
" 14 0.000 0.000 0.000 0.000 construction.py:695(_sanitize_ndim)\n",
|
|
" 7 0.000 0.000 0.000 0.000 _json.py:1442(is_ok)\n",
|
|
" 1 0.000 0.000 0.000 0.000 numeric.py:2407(array_equal)\n",
|
|
" 7 0.000 0.000 0.000 0.000 series.py:703(name)\n",
|
|
" 10 0.000 0.000 0.000 0.000 common.py:1322(is_ea_or_datetimelike_dtype)\n",
|
|
" 2 0.000 0.000 0.000 0.000 config.py:153(_set_option)\n",
|
|
" 1 0.000 0.000 0.014 0.014 _json.py:816(__init__)\n",
|
|
" 4 0.000 0.000 0.000 0.000 blocks.py:297(slice_block_columns)\n",
|
|
" 1 0.000 0.000 0.000 0.000 blocks.py:2375(new_block_2d)\n",
|
|
" 8 0.000 0.000 0.001 0.000 <__array_function__ internals>:177(concatenate)\n",
|
|
" 1 0.000 0.000 0.007 0.007 frame.py:1123(__repr__)\n",
|
|
" 10 0.000 0.000 0.000 0.000 common.py:1562(validate_all_hashable)\n",
|
|
" 1 0.000 0.000 0.002 0.002 managers.py:2207(_consolidate)\n",
|
|
" 9 0.000 0.000 0.000 0.000 indexing.py:948(_is_nested_tuple_indexer)\n",
|
|
" 1 0.000 0.000 0.001 0.001 format.py:564(__init__)\n",
|
|
" 10 0.000 0.000 0.000 0.000 managers.py:225(set_axis)\n",
|
|
" 2 0.000 0.000 0.000 0.000 common.py:1155(_is_binary_mode)\n",
|
|
" 42 0.000 0.000 0.000 0.000 base.py:5127(_values)\n",
|
|
" 3 0.000 0.000 0.000 0.000 range.py:234(_data)\n",
|
|
" 18 0.000 0.000 0.000 0.000 common.py:367(apply_if_callable)\n",
|
|
" 1 0.000 0.000 0.000 0.000 common.py:228(asarray_tuplesafe)\n",
|
|
" 2 0.000 0.000 0.000 0.000 indexing.py:978(_getitem_tuple_same_dim)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {pandas._libs.internals.get_concat_blkno_indexers}\n",
|
|
" 4 0.000 0.000 0.000 0.000 datetimes.py:369(_convert_listlike_datetimes)\n",
|
|
" 35 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects}\n",
|
|
" 9 0.000 0.000 0.000 0.000 blocks.py:2467(extend_blocks)\n",
|
|
" 17 0.000 0.000 0.000 0.000 __init__.py:43(using_pyarrow_string_dtype)\n",
|
|
" 1 0.000 0.000 0.012 0.012 _json.py:896(_preprocess_data)\n",
|
|
" 1 0.000 0.000 0.000 0.000 cast.py:1569(maybe_cast_to_integer_array)\n",
|
|
" 1 0.000 0.000 0.000 0.000 cast.py:774(infer_dtype_from_scalar)\n",
|
|
" 2 0.000 0.000 0.000 0.000 base.py:5519(equals)\n",
|
|
" 3 0.000 0.000 0.007 0.002 {built-in method builtins.print}\n",
|
|
" 6 0.000 0.000 0.000 0.000 missing.py:305(_isna_string_dtype)\n",
|
|
" 5 0.000 0.000 0.000 0.000 api.py:379(default_index)\n",
|
|
" 1 0.000 0.000 0.000 0.000 _parser.py:62(__init__)\n",
|
|
" 1 0.000 0.000 0.004 0.004 construction.py:423(dict_to_mgr)\n",
|
|
" 1 0.000 0.000 0.002 0.002 _json.py:1185(_convert_axes)\n",
|
|
" 6 0.000 0.000 0.000 0.000 fromnumeric.py:2432(all)\n",
|
|
" 1 0.000 0.000 0.000 0.000 common.py:289(_get_filepath_or_buffer)\n",
|
|
" 2 0.000 0.000 0.001 0.001 concat.py:157(concat)\n",
|
|
" 53 0.000 0.000 0.000 0.000 {built-in method builtins.hash}\n",
|
|
" 1 0.000 0.000 0.000 0.000 base.py:2293(is_unique)\n",
|
|
" 2 0.000 0.000 0.000 0.000 base.py:5422(append)\n",
|
|
" 2 0.000 0.000 0.000 0.000 _json.py:1049(close)\n",
|
|
" 36 0.000 0.000 0.000 0.000 {method 'insert' of 'list' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 common.py:538(infer_compression)\n",
|
|
" 7 0.000 0.000 0.010 0.001 series.py:5223(memory_usage)\n",
|
|
" 3 0.000 0.000 0.000 0.000 concat.py:572(_is_uniform_join_units)\n",
|
|
" 6 0.000 0.000 0.000 0.000 managers.py:2212(<lambda>)\n",
|
|
" 7 0.000 0.000 0.000 0.000 generic.py:6189(__getattr__)\n",
|
|
" 18 0.000 0.000 0.000 0.000 indexing.py:2651(is_label_like)\n",
|
|
" 13 0.000 0.000 0.000 0.000 blocks.py:187(is_extension)\n",
|
|
" 1 0.000 0.000 0.000 0.000 base.py:1427(<listcomp>)\n",
|
|
" 5 0.000 0.000 0.000 0.000 common.py:173(_expand_user)\n",
|
|
" 1 0.000 0.000 0.002 0.002 _json.py:912(_get_data_from_filepath)\n",
|
|
" 9 0.000 0.000 0.000 0.000 common.py:131(<lambda>)\n",
|
|
" 2 0.000 0.000 0.000 0.000 common.py:121(close)\n",
|
|
" 1 0.000 0.000 0.000 0.000 construction.py:487(<listcomp>)\n",
|
|
" 7 0.000 0.000 0.000 0.000 {method 'add_index_reference' of 'pandas._libs.internals.BlockValuesRefs' objects}\n",
|
|
" 9 0.000 0.000 0.000 0.000 format.py:1300(__init__)\n",
|
|
" 2 0.000 0.000 0.000 0.000 concat.py:492(_clean_keys_and_objs)\n",
|
|
" 3 0.000 0.000 0.000 0.000 blocks.py:198(_consolidate_key)\n",
|
|
" 1 0.000 0.000 0.000 0.000 string.py:128(<listcomp>)\n",
|
|
" 1 0.000 0.000 0.005 0.005 format.py:1077(to_string)\n",
|
|
" 1 0.000 0.000 0.000 0.000 range.py:489(copy)\n",
|
|
" 18 0.000 0.000 0.000 0.000 numerictypes.py:282(issubclass_)\n",
|
|
" 24 0.000 0.000 0.000 0.000 managers.py:169(blknos)\n",
|
|
" 14 0.000 0.000 0.000 0.000 construction.py:734(_sanitize_str_dtypes)\n",
|
|
" 7 0.000 0.000 0.000 0.000 frame.py:1539(__len__)\n",
|
|
" 9 0.000 0.000 0.000 0.000 concat.py:597(<genexpr>)\n",
|
|
" 66 0.000 0.000 0.000 0.000 generic.py:393(flags)\n",
|
|
" 9 0.000 0.000 0.000 0.000 common.py:514(is_string_or_object_np_dtype)\n",
|
|
" 63 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_float}\n",
|
|
" 34 0.000 0.000 0.000 0.000 {method 'endswith' of 'str' objects}\n",
|
|
" 2 0.000 0.000 0.000 0.000 concat.py:478(_get_ndims)\n",
|
|
" 68 0.000 0.000 0.000 0.000 {built-in method builtins.iter}\n",
|
|
" 1 0.000 0.000 0.062 0.062 _json.py:1172(parse)\n",
|
|
" 1 0.000 0.000 0.000 0.000 base.py:842(_engine)\n",
|
|
" 20 0.000 0.000 0.000 0.000 common.py:1581(<genexpr>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {pandas._libs.missing.is_float_nan}\n",
|
|
" 6 0.000 0.000 0.000 0.000 <__array_function__ internals>:177(all)\n",
|
|
" 1 0.000 0.000 0.000 0.000 base.py:7092(_cmp_method)\n",
|
|
" 1 0.000 0.000 0.001 0.001 format.py:825(_truncate_vertically)\n",
|
|
" 18 0.000 0.000 0.000 0.000 indexing.py:966(_validate_key_length)\n",
|
|
" 9 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:1207(_handle_fromlist)\n",
|
|
" 27 0.000 0.000 0.000 0.000 indexing.py:955(<genexpr>)\n",
|
|
" 2 0.000 0.000 0.000 0.000 concat.py:52(concat_compat)\n",
|
|
" 27 0.000 0.000 0.000 0.000 indexing.py:2685(<genexpr>)\n",
|
|
" 27 0.000 0.000 0.000 0.000 indexing.py:1143(<genexpr>)\n",
|
|
" 5 0.000 0.000 0.000 0.000 <frozen posixpath>:229(expanduser)\n",
|
|
" 6 0.000 0.000 0.000 0.000 generic.py:487(_validate_dtype)\n",
|
|
" 1 0.000 0.000 0.000 0.000 managers.py:1740(<listcomp>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 series.py:3159(_append)\n",
|
|
" 25 0.000 0.000 0.000 0.000 managers.py:185(blklocs)\n",
|
|
" 34 0.000 0.000 0.000 0.000 flags.py:57(allows_duplicate_labels)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'take' of 'numpy.ndarray' objects}\n",
|
|
" 14 0.000 0.000 0.000 0.000 managers.py:2124(_grouping_func)\n",
|
|
" 34 0.000 0.000 0.000 0.000 generic.py:358(attrs)\n",
|
|
" 14 0.000 0.000 0.000 0.000 series.py:626(dtype)\n",
|
|
" 6 0.000 0.000 0.000 0.000 {built-in method posix.getpid}\n",
|
|
" 1 0.000 0.000 0.000 0.000 format.py:487(get_dataframe_repr_params)\n",
|
|
" 42 0.000 0.000 0.000 0.000 {method 'lower' of 'str' objects}\n",
|
|
" 11 0.000 0.000 0.000 0.000 common.py:306(is_null_slice)\n",
|
|
" 1 0.000 0.000 0.000 0.000 console.py:9(get_console_size)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'argsort' of 'numpy.ndarray' objects}\n",
|
|
" 29 0.000 0.000 0.000 0.000 managers.py:1902(_block)\n",
|
|
" 13 0.000 0.000 0.000 0.000 frame.py:949(axes)\n",
|
|
" 1 0.000 0.000 0.016 0.016 construction.py:506(nested_data_to_arrays)\n",
|
|
" 11 0.000 0.000 0.000 0.000 indexing.py:150(iloc)\n",
|
|
" 10 0.000 0.000 0.000 0.000 format.py:425(__init__)\n",
|
|
" 15 0.000 0.000 0.000 0.000 base.py:831(_reset_identity)\n",
|
|
" 4 0.000 0.000 0.000 0.000 common.py:233(stringify_path)\n",
|
|
" 5 0.000 0.000 0.000 0.000 base.py:592(_dtype_to_subclass)\n",
|
|
" 27 0.000 0.000 0.000 0.000 indexing.py:2694(<genexpr>)\n",
|
|
" 2 0.000 0.000 0.000 0.000 base.py:7592(trim_front)\n",
|
|
" 7 0.000 0.000 0.000 0.000 _dtype.py:330(_name_includes_bit_suffix)\n",
|
|
" 2 0.000 0.000 0.000 0.000 construction.py:765(_try_cast)\n",
|
|
" 1 0.000 0.000 0.000 0.000 format.py:1163(save_to_buffer)\n",
|
|
" 2 0.000 0.000 0.000 0.000 managers.py:1734(_consolidate_check)\n",
|
|
" 7 0.000 0.000 0.005 0.001 _json.py:1429(<lambda>)\n",
|
|
" 14 0.000 0.000 0.000 0.000 series.py:791(array)\n",
|
|
" 2 0.000 0.000 0.002 0.001 managers.py:1744(_consolidate_inplace)\n",
|
|
" 9 0.000 0.000 0.000 0.000 concat.py:587(<genexpr>)\n",
|
|
" 2 0.000 0.000 0.000 0.000 frozen.py:73(__getitem__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 nanops.py:76(_f)\n",
|
|
" 1 0.000 0.000 0.000 0.000 array_ops.py:191(_na_arithmetic_op)\n",
|
|
" 35 0.000 0.000 0.000 0.000 multiarray.py:1079(copyto)\n",
|
|
" 2 0.000 0.000 0.000 0.000 concat.py:713(_get_concat_axis)\n",
|
|
" 9 0.000 0.000 0.000 0.000 common.py:556(require_length_match)\n",
|
|
" 16 0.000 0.000 0.000 0.000 common.py:123(<lambda>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 string.py:189(_binify)\n",
|
|
" 1 0.000 0.000 0.000 0.000 format.py:683(_initialize_justify)\n",
|
|
" 21 0.000 0.000 0.000 0.000 common.py:1255(is_1d_only_ea_dtype)\n",
|
|
" 6 0.000 0.000 0.000 0.000 iostream.py:505(_is_master_process)\n",
|
|
" 2 0.000 0.000 0.000 0.000 indexing.py:1718(_get_slice_axis)\n",
|
|
" 1 0.000 0.000 0.001 0.001 format.py:789(truncate)\n",
|
|
" 1 0.000 0.000 0.005 0.005 string.py:40(_get_string_representation)\n",
|
|
" 24 0.000 0.000 0.000 0.000 blocks.py:583(dtype)\n",
|
|
" 18 0.000 0.000 0.000 0.000 indexing.py:1627(<genexpr>)\n",
|
|
" 12 0.000 0.000 0.000 0.000 format.py:633(is_truncated_horizontally)\n",
|
|
" 1 0.000 0.000 0.000 0.000 nanops.py:604(nansum)\n",
|
|
" 7 0.000 0.000 0.000 0.000 _json.py:1462(<lambda>)\n",
|
|
" 8 0.000 0.000 0.000 0.000 common.py:1366(_is_dtype)\n",
|
|
" 1 0.000 0.000 0.005 0.005 string.py:28(to_string)\n",
|
|
" 3 0.000 0.000 0.000 0.000 frame.py:641(_constructor_from_mgr)\n",
|
|
" 3 0.000 0.000 0.000 0.000 locale.py:396(normalize)\n",
|
|
" 14 0.000 0.000 0.000 0.000 {built-in method builtins.setattr}\n",
|
|
" 28 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_iterator}\n",
|
|
" 1 0.000 0.000 0.000 0.000 format.py:1023(__init__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 generic.py:12031(_min_count_stat_function)\n",
|
|
" 27 0.000 0.000 0.000 0.000 indexing.py:915(<genexpr>)\n",
|
|
" 14 0.000 0.000 0.000 0.000 construction.py:754(_maybe_repeat)\n",
|
|
" 2 0.000 0.000 0.000 0.000 {method 'all' of 'numpy.ndarray' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 format.py:949(<listcomp>)\n",
|
|
" 17 0.000 0.000 0.000 0.000 blocks.py:1003(shape)\n",
|
|
" 15 0.000 0.000 0.000 0.000 generic.py:659(ndim)\n",
|
|
" 16 0.000 0.000 0.000 0.000 common.py:121(classes)\n",
|
|
" 2 0.000 0.000 0.000 0.000 _methods.py:61(_all)\n",
|
|
" 14 0.000 0.000 0.000 0.000 utils.py:62(is_list_like_indexer)\n",
|
|
" 2 0.000 0.000 0.000 0.000 concat.py:695(new_axes)\n",
|
|
" 9 0.000 0.000 0.000 0.000 indexing.py:909(_expand_ellipsis)\n",
|
|
" 1 0.000 0.000 0.000 0.000 _parser.py:199(split)\n",
|
|
" 5 0.000 0.000 0.000 0.000 printing.py:48(<listcomp>)\n",
|
|
" 6 0.000 0.000 0.000 0.000 fromnumeric.py:70(<dictcomp>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 fromnumeric.py:51(_wrapfunc)\n",
|
|
" 1 0.000 0.000 0.000 0.000 range.py:341(nbytes)\n",
|
|
" 2 0.000 0.000 0.000 0.000 common.py:557(condition)\n",
|
|
" 1 0.000 0.000 0.000 0.000 managers.py:918(_verify_integrity)\n",
|
|
" 1 0.000 0.000 0.000 0.000 console.py:79(in_ipython_frontend)\n",
|
|
" 8 0.000 0.000 0.000 0.000 {method 'max' of 'numpy.ndarray' objects}\n",
|
|
" 2 0.000 0.000 0.000 0.000 missing.py:466(array_equivalent)\n",
|
|
" 1 0.000 0.000 0.000 0.000 generic.py:6337(dtypes)\n",
|
|
" 2 0.000 0.000 0.000 0.000 concat.py:698(<listcomp>)\n",
|
|
" 6 0.000 0.000 0.000 0.000 enum.py:193(__get__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 string.py:67(_insert_dot_separators)\n",
|
|
" 1 0.000 0.000 0.000 0.000 base.py:674(_with_infer)\n",
|
|
" 15 0.000 0.000 0.000 0.000 base.py:71(<genexpr>)\n",
|
|
" 2 0.000 0.000 0.000 0.000 common.py:277(is_fsspec_url)\n",
|
|
" 3 0.000 0.000 0.000 0.000 format.py:1613(_format_strings)\n",
|
|
" 3 0.000 0.000 0.000 0.000 base.py:1396(format)\n",
|
|
" 2 0.000 0.000 0.000 0.000 common.py:145(is_url)\n",
|
|
" 2 0.000 0.000 0.000 0.000 missing.py:564(_array_equivalent_object)\n",
|
|
" 2 0.000 0.000 0.000 0.000 concat.py:565(<listcomp>)\n",
|
|
" 2 0.000 0.000 0.000 0.000 <string>:1(<lambda>)\n",
|
|
" 3 0.000 0.000 0.000 0.000 frame.py:4399(_clear_item_cache)\n",
|
|
" 1 0.000 0.000 0.001 0.001 _json.py:1432(_try_convert_dates)\n",
|
|
" 1 0.000 0.000 0.000 0.000 construction.py:1068(<listcomp>)\n",
|
|
" 18 0.000 0.000 0.000 0.000 {method 'search' of 're.Pattern' objects}\n",
|
|
" 14 0.000 0.000 0.000 0.000 format.py:877(<genexpr>)\n",
|
|
" 4 0.000 0.000 0.000 0.000 missing.py:642(na_value_for_dtype)\n",
|
|
" 1 0.000 0.000 0.000 0.000 managers.py:278(get_dtypes)\n",
|
|
" 2 0.000 0.000 0.000 0.000 range.py:996(_getitem_slice)\n",
|
|
" 5 0.000 0.000 0.000 0.000 format.py:2024(_has_names)\n",
|
|
" 4 0.000 0.000 0.000 0.000 base.py:1751(_get_names)\n",
|
|
" 1 0.000 0.000 0.000 0.000 common.py:62(new_method)\n",
|
|
" 26 0.000 0.000 0.000 0.000 base.py:7606(<genexpr>)\n",
|
|
" 1 0.000 0.000 0.005 0.005 string.py:34(_get_strcols)\n",
|
|
" 1 0.000 0.000 0.000 0.000 series.py:6094(_reduce)\n",
|
|
" 44 0.000 0.000 0.000 0.000 typing.py:2256(cast)\n",
|
|
" 3 0.000 0.000 0.000 0.000 blocks.py:265(make_block_same_class)\n",
|
|
" 3 0.000 0.000 0.000 0.000 locale.py:593(getlocale)\n",
|
|
" 2 0.000 0.000 0.000 0.000 parse.py:119(_coerce_args)\n",
|
|
" 6 0.000 0.000 0.000 0.000 {built-in method builtins.sum}\n",
|
|
" 25 0.000 0.000 0.000 0.000 {built-in method builtins.callable}\n",
|
|
" 1 0.000 0.000 0.005 0.005 format.py:611(get_strcols)\n",
|
|
" 2 0.000 0.000 0.000 0.000 format.py:974(<listcomp>)\n",
|
|
" 2 0.000 0.000 0.000 0.000 concat.py:543(_get_sample_object)\n",
|
|
" 7 0.000 0.000 0.000 0.000 series.py:784(_references)\n",
|
|
" 19 0.000 0.000 0.000 0.000 base.py:1657(name)\n",
|
|
" 6 0.000 0.000 0.000 0.000 blocks.py:203(_can_hold_na)\n",
|
|
" 6 0.000 0.000 0.000 0.000 __init__.py:225(compile)\n",
|
|
" 4 0.000 0.000 0.000 0.000 base.py:448(size)\n",
|
|
" 1 0.000 0.000 0.000 0.000 construction.py:1006(convert_object_array)\n",
|
|
" 1 0.000 0.000 0.000 0.000 api.py:106(_get_distinct_objs)\n",
|
|
" 1 0.000 0.000 0.000 0.000 inference.py:404(is_dataclass)\n",
|
|
" 10 0.000 0.000 0.000 0.000 _parser.py:203(isword)\n",
|
|
" 7 0.000 0.000 0.000 0.000 inspect.py:292(isclass)\n",
|
|
" 1 0.000 0.000 0.000 0.000 base.py:1795(set_names)\n",
|
|
" 1 0.000 0.000 0.000 0.000 managers.py:279(<listcomp>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 threading.py:1185(is_alive)\n",
|
|
" 3 0.000 0.000 0.000 0.000 {built-in method _locale.setlocale}\n",
|
|
" 6 0.000 0.000 0.000 0.000 generic.py:6182(<genexpr>)\n",
|
|
" 3 0.000 0.000 0.000 0.000 format.py:645(has_index_names)\n",
|
|
" 1 0.000 0.000 0.001 0.001 shape_base.py:223(vstack)\n",
|
|
" 1 0.000 0.000 0.000 0.000 construction.py:481(<listcomp>)\n",
|
|
" 3 0.000 0.000 0.000 0.000 inference.py:105(is_file_like)\n",
|
|
" 2 0.000 0.000 0.000 0.000 concat.py:773(_concat_indexes)\n",
|
|
" 6 0.000 0.000 0.000 0.000 base.py:6625(_validate_indexer)\n",
|
|
" 3 0.000 0.000 0.000 0.000 frame.py:966(shape)\n",
|
|
" 3 0.000 0.000 0.000 0.000 format.py:653(show_row_idx_names)\n",
|
|
" 2 0.000 0.000 0.000 0.000 managers.py:1726(is_consolidated)\n",
|
|
" 1 0.000 0.000 0.000 0.000 arraylike.py:54(__gt__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 _json.py:1126(__init__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 config.py:469(__init__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 nanops.py:389(new_func)\n",
|
|
" 1 0.000 0.000 0.000 0.000 contextlib.py:104(__init__)\n",
|
|
" 7 0.000 0.000 0.000 0.000 _dtype.py:24(_kind_name)\n",
|
|
" 2 0.000 0.000 0.000 0.000 base.py:773(_view)\n",
|
|
" 6 0.000 0.000 0.000 0.000 iostream.py:532(_schedule_flush)\n",
|
|
" 3 0.000 0.000 0.000 0.000 _strptime.py:26(_getlang)\n",
|
|
" 1 0.000 0.000 0.000 0.000 construction.py:950(_validate_or_indexify_columns)\n",
|
|
" 1 0.000 0.000 0.000 0.000 base.py:1243(copy)\n",
|
|
" 1 0.000 0.000 0.000 0.000 base.py:5458(_concat)\n",
|
|
" 9 0.000 0.000 0.000 0.000 common.py:126(_classes_and_not_datetimelike)\n",
|
|
" 4 0.000 0.000 0.000 0.000 nanops.py:79(<genexpr>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 shape_base.py:81(atleast_2d)\n",
|
|
" 1 0.000 0.000 0.000 0.000 _parser.py:221(__init__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {built-in method builtins.sorted}\n",
|
|
" 4 0.000 0.000 0.000 0.000 {pandas._libs.lib.maybe_indices_to_slice}\n",
|
|
" 1 0.000 0.000 0.001 0.001 <frozen genericpath>:16(exists)\n",
|
|
" 1 0.000 0.000 0.000 0.000 api.py:120(_get_combined_index)\n",
|
|
" 4 0.000 0.000 0.000 0.000 base.py:675(empty)\n",
|
|
" 1 0.000 0.000 0.000 0.000 config.py:477(__enter__)\n",
|
|
" 2 0.000 0.000 0.000 0.000 _json.py:1105(__exit__)\n",
|
|
" 4 0.000 0.000 0.000 0.000 generic.py:568(_get_block_manager_axis)\n",
|
|
" 2 0.000 0.000 0.000 0.000 base.py:4190(_validate_positional_slice)\n",
|
|
" 1 0.000 0.000 0.000 0.000 range.py:352(memory_usage)\n",
|
|
" 1 0.000 0.000 0.000 0.000 function.py:411(validate_func)\n",
|
|
" 8 0.000 0.000 0.000 0.000 common.py:1390(_get_dtype)\n",
|
|
" 15 0.000 0.000 0.000 0.000 blocks.py:239(mgr_locs)\n",
|
|
" 9 0.000 0.000 0.000 0.000 contextlib.py:428(__init__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 string.py:126(<listcomp>)\n",
|
|
" 8 0.000 0.000 0.000 0.000 _methods.py:39(_amax)\n",
|
|
" 1 0.000 0.000 0.000 0.000 range.py:1030(_cmp_method)\n",
|
|
" 1 0.000 0.000 0.000 0.000 _parser.py:395(__init__)\n",
|
|
" 9 0.000 0.000 0.000 0.000 series.py:577(_constructor)\n",
|
|
" 2 0.000 0.000 0.000 0.000 config.py:215(get_default_val)\n",
|
|
" 1 0.000 0.000 0.000 0.000 api.py:72(get_objs_combined_axis)\n",
|
|
" 13 0.000 0.000 0.000 0.000 {method 'pop' of 'dict' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 concat.py:202(_maybe_reindex_columns_na_proxy)\n",
|
|
" 3 0.000 0.000 0.000 0.000 locale.py:479(_parse_localename)\n",
|
|
" 2 0.000 0.000 0.000 0.000 base.py:5453(<setcomp>)\n",
|
|
" 2 0.000 0.000 0.000 0.000 construction.py:196(mgr_to_mgr)\n",
|
|
" 9 0.000 0.000 0.000 0.000 contextlib.py:434(__exit__)\n",
|
|
" 4 0.000 0.000 0.000 0.000 construction.py:687(_sanitize_non_ordered)\n",
|
|
" 3 0.000 0.000 0.000 0.000 _parser.py:189(__next__)\n",
|
|
" 9 0.000 0.000 0.000 0.000 concat.py:584(<genexpr>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 construction.py:532(treat_as_nested)\n",
|
|
" 2 0.000 0.000 0.000 0.000 format.py:657(show_col_idx_names)\n",
|
|
" 3 0.000 0.000 0.000 0.000 base.py:791(is_)\n",
|
|
" 1 0.000 0.000 0.000 0.000 format.py:751(_adjust_max_rows)\n",
|
|
" 1 0.000 0.000 0.000 0.000 generic.py:12070(sum)\n",
|
|
" 3 0.000 0.000 0.000 0.000 _strptime.py:565(_strptime_datetime)\n",
|
|
" 4 0.000 0.000 0.000 0.000 {built-in method sys.getsizeof}\n",
|
|
" 2 0.000 0.000 0.000 0.000 format.py:629(is_truncated)\n",
|
|
" 1 0.000 0.000 0.000 0.000 base.py:1754(_set_names)\n",
|
|
" 1 0.000 0.000 0.000 0.000 <__array_function__ internals>:177(array_equal)\n",
|
|
" 4 0.000 0.000 0.000 0.000 format.py:637(is_truncated_vertically)\n",
|
|
" 4 0.000 0.000 0.000 0.000 range.py:347(<genexpr>)\n",
|
|
" 4 0.000 0.000 0.000 0.000 managers.py:920(<genexpr>)\n",
|
|
" 2 0.000 0.000 0.000 0.000 common.py:521(is_string_dtype)\n",
|
|
" 1 0.000 0.000 0.001 0.001 common.py:1141(file_exists)\n",
|
|
" 2 0.000 0.000 0.000 0.000 base.py:7607(<listcomp>)\n",
|
|
" 2 0.000 0.000 0.000 0.000 generic.py:4314(_set_is_copy)\n",
|
|
" 1 0.000 0.000 0.000 0.000 base.py:5153(_get_engine_target)\n",
|
|
" 5 0.000 0.000 0.000 0.000 managers.py:896(__init__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 concat.py:703(_get_comb_axis)\n",
|
|
" 11 0.000 0.000 0.000 0.000 {method 'items' of 'dict' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 fromnumeric.py:1038(argsort)\n",
|
|
" 4 0.000 0.000 0.000 0.000 blocks.py:1016(_slice)\n",
|
|
" 1 0.000 0.000 0.000 0.000 contextlib.py:132(__enter__)\n",
|
|
" 2 0.000 0.000 0.000 0.000 format.py:649(has_column_names)\n",
|
|
" 1 0.000 0.000 0.000 0.000 expressions.py:226(evaluate)\n",
|
|
" 1 0.000 0.000 0.000 0.000 common.py:977(is_numeric_v_string_like)\n",
|
|
" 1 0.000 0.000 0.000 0.000 config.py:483(__exit__)\n",
|
|
" 3 0.000 0.000 0.000 0.000 generic.py:2073(<genexpr>)\n",
|
|
" 2 0.000 0.000 0.000 0.000 base.py:782(_rename)\n",
|
|
" 1 0.000 0.000 0.000 0.000 threading.py:1118(_wait_for_tstate_lock)\n",
|
|
" 3 0.000 0.000 0.000 0.000 nanops.py:72(check)\n",
|
|
" 1 0.000 0.000 0.000 0.000 missing.py:131(dispatch_fill_zeros)\n",
|
|
" 6 0.000 0.000 0.000 0.000 enum.py:1249(value)\n",
|
|
" 4 0.000 0.000 0.000 0.000 datetimes.py:156(should_cache)\n",
|
|
" 1 0.000 0.000 0.000 0.000 expressions.py:67(_evaluate_standard)\n",
|
|
" 2 0.000 0.000 0.000 0.000 format.py:1179(get_buffer)\n",
|
|
" 3 0.000 0.000 0.000 0.000 blocks.py:192(_can_consolidate)\n",
|
|
" 1 0.000 0.000 0.000 0.000 iostream.py:127(_event_pipe)\n",
|
|
" 1 0.000 0.000 0.000 0.000 range.py:484(_view)\n",
|
|
" 4 0.000 0.000 0.000 0.000 generic.py:6177(<genexpr>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 <frozen codecs>:309(__init__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'sum' of 'numpy.ndarray' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 managers.py:2233(<listcomp>)\n",
|
|
" 14 0.000 0.000 0.000 0.000 base.py:6612(_maybe_cast_indexer)\n",
|
|
" 9 0.000 0.000 0.000 0.000 range.py:377(dtype)\n",
|
|
" 1 0.000 0.000 0.000 0.000 common.py:85(consensus_name_attr)\n",
|
|
" 1 0.000 0.000 0.000 0.000 _validators.py:450(check_dtype_backend)\n",
|
|
" 1 0.000 0.000 0.000 0.000 base.py:459(_engine_type)\n",
|
|
" 1 0.000 0.000 0.000 0.000 nanops.py:455(newfunc)\n",
|
|
" 1 0.000 0.000 0.001 0.001 <__array_function__ internals>:177(vstack)\n",
|
|
" 6 0.000 0.000 0.000 0.000 common.py:1107(<lambda>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {built-in method _codecs.lookup}\n",
|
|
" 1 0.000 0.000 0.000 0.000 console.py:54(in_interactive_session)\n",
|
|
" 1 0.000 0.000 0.000 0.000 contextlib.py:287(helper)\n",
|
|
" 1 0.000 0.000 0.000 0.000 common.py:80(ensure_str)\n",
|
|
" 1 0.000 0.000 0.000 0.000 _parser.py:322(weekday)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'any' of 'numpy.ndarray' objects}\n",
|
|
" 2 0.000 0.000 0.000 0.000 concat.py:689(_get_result_dim)\n",
|
|
" 9 0.000 0.000 0.000 0.000 {pandas._libs.lib.item_from_zerodim}\n",
|
|
" 7 0.000 0.000 0.000 0.000 managers.py:335(<dictcomp>)\n",
|
|
" 4 0.000 0.000 0.000 0.000 config.py:663(_get_registered_option)\n",
|
|
" 6 0.000 0.000 0.000 0.000 concat.py:351(__init__)\n",
|
|
" 4 0.000 0.000 0.000 0.000 {method 'upper' of 'str' objects}\n",
|
|
" 12 0.000 0.000 0.000 0.000 base.py:363(ndim)\n",
|
|
" 1 0.000 0.000 0.000 0.000 string.py:22(__init__)\n",
|
|
" 11 0.000 0.000 0.000 0.000 {method 'read' of '_io.StringIO' objects}\n",
|
|
" 7 0.000 0.000 0.000 0.000 {method 'write' of '_io.StringIO' objects}\n",
|
|
" 3 0.000 0.000 0.000 0.000 concat.py:167(<listcomp>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 <string>:2(__init__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 series.py:6195(sum)\n",
|
|
" 1 0.000 0.000 0.000 0.000 <__array_function__ internals>:177(argsort)\n",
|
|
" 2 0.000 0.000 0.000 0.000 {built-in method builtins.next}\n",
|
|
" 1 0.000 0.000 0.000 0.000 nanops.py:253(_get_values)\n",
|
|
" 1 0.000 0.000 0.000 0.000 base.py:1900(rename)\n",
|
|
" 3 0.000 0.000 0.000 0.000 range.py:281(start)\n",
|
|
" 2 0.000 0.000 0.000 0.000 base.py:346(shape)\n",
|
|
" 1 0.000 0.000 0.000 0.000 nanops.py:324(_get_dtype_max)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'fill' of 'numpy.ndarray' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 concat.py:303(<listcomp>)\n",
|
|
" 2 0.000 0.000 0.000 0.000 generic.py:638(_info_axis)\n",
|
|
" 1 0.000 0.000 0.000 0.000 contextlib.py:141(__exit__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 format.py:641(dimensions_info)\n",
|
|
" 1 0.000 0.000 0.000 0.000 generic.py:2015(empty)\n",
|
|
" 1 0.000 0.000 0.000 0.000 base.py:5462(<listcomp>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 concat.py:747(<listcomp>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 dataclasses.py:1256(is_dataclass)\n",
|
|
" 4 0.000 0.000 0.000 0.000 {pandas._libs.algos.ensure_object}\n",
|
|
" 1 0.000 0.000 0.000 0.000 _parser.py:208(isnum)\n",
|
|
" 1 0.000 0.000 0.000 0.000 common.py:1107(_maybe_memory_map)\n",
|
|
" 1 0.000 0.000 0.000 0.000 api.py:102(<listcomp>)\n",
|
|
" 6 0.000 0.000 0.000 0.000 fromnumeric.py:2427(_all_dispatcher)\n",
|
|
" 8 0.000 0.000 0.000 0.000 multiarray.py:152(concatenate)\n",
|
|
" 10 0.000 0.000 0.000 0.000 {method 'isalpha' of 'str' objects}\n",
|
|
" 2 0.000 0.000 0.000 0.000 construction.py:916(<genexpr>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 frame.py:1114(_info_repr)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'acquire' of '_thread.lock' objects}\n",
|
|
" 2 0.000 0.000 0.000 0.000 config.py:897(is_nonnegative_int)\n",
|
|
" 1 0.000 0.000 0.000 0.000 format.py:732(_calc_max_rows_fitted)\n",
|
|
" 6 0.000 0.000 0.000 0.000 common.py:175(<genexpr>)\n",
|
|
" 2 0.000 0.000 0.000 0.000 common.py:171(not_none)\n",
|
|
" 1 0.000 0.000 0.000 0.000 shape_base.py:218(_vhstack_dispatcher)\n",
|
|
" 1 0.000 0.000 0.000 0.000 generic.py:1948(__iter__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 <__array_function__ internals>:177(atleast_2d)\n",
|
|
" 1 0.000 0.000 0.000 0.000 range.py:946(<listcomp>)\n",
|
|
" 6 0.000 0.000 0.000 0.000 {method '__exit__' of '_thread.RLock' objects}\n",
|
|
" 3 0.000 0.000 0.000 0.000 {method 'clear' of 'dict' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 _parser.py:342(ampm)\n",
|
|
" 2 0.000 0.000 0.000 0.000 series.py:3169(<genexpr>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 expressions.py:76(_can_use_numexpr)\n",
|
|
" 1 0.000 0.000 0.000 0.000 common.py:1025(needs_i8_conversion)\n",
|
|
" 1 0.000 0.000 0.000 0.000 format.py:721(_calc_max_cols_fitted)\n",
|
|
" 9 0.000 0.000 0.000 0.000 contextlib.py:431(__enter__)\n",
|
|
" 3 0.000 0.000 0.000 0.000 range.py:316(step)\n",
|
|
" 1 0.000 0.000 0.000 0.000 _methods.py:55(_any)\n",
|
|
" 6 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_int_or_none}\n",
|
|
" 7 0.000 0.000 0.000 0.000 _json.py:1401(<lambda>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 config.py:478(<listcomp>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 concat.py:631(<listcomp>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 _parser.py:329(month)\n",
|
|
" 3 0.000 0.000 0.000 0.000 range.py:911(<genexpr>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 format.py:623(should_show_dimensions)\n",
|
|
" 2 0.000 0.000 0.000 0.000 base.py:539(<genexpr>)\n",
|
|
" 7 0.000 0.000 0.000 0.000 series.py:1381(_clear_item_cache)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}\n",
|
|
" 2 0.000 0.000 0.000 0.000 format.py:765(_is_in_terminal)\n",
|
|
" 1 0.000 0.000 0.000 0.000 _parser.py:319(jump)\n",
|
|
" 5 0.000 0.000 0.000 0.000 {method 'add' of 'set' objects}\n",
|
|
" 3 0.000 0.000 0.000 0.000 frame.py:637(_constructor)\n",
|
|
" 2 0.000 0.000 0.000 0.000 concat.py:73(<listcomp>)\n",
|
|
" 3 0.000 0.000 0.000 0.000 {method '__exit__' of '_thread.lock' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 concat.py:720(<listcomp>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 _parser.py:213(isspace)\n",
|
|
" 4 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_bool}\n",
|
|
" 1 0.000 0.000 0.000 0.000 format.py:689(_initialize_columns)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {built-in method pandas._libs.lib.is_interval}\n",
|
|
" 5 0.000 0.000 0.000 0.000 {built-in method posix.fspath}\n",
|
|
" 2 0.000 0.000 0.000 0.000 {pandas._libs.lib.dtypes_all_equal}\n",
|
|
" 1 0.000 0.000 0.000 0.000 common.py:503(get_compression_method)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {built-in method builtins.min}\n",
|
|
" 1 0.000 0.000 0.000 0.000 _methods.py:47(_sum)\n",
|
|
" 1 0.000 0.000 0.000 0.000 dispatch.py:17(should_extension_dispatch)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'getvalue' of '_io.StringIO' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 format.py:665(_initialize_sparsify)\n",
|
|
" 1 0.000 0.000 0.000 0.000 range.py:922(<listcomp>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 threading.py:568(is_set)\n",
|
|
" 1 0.000 0.000 0.000 0.000 managers.py:536(nblocks)\n",
|
|
" 1 0.000 0.000 0.000 0.000 shape_base.py:207(_arrays_for_stack_dispatcher)\n",
|
|
" 1 0.000 0.000 0.000 0.000 inference.py:306(is_named_tuple)\n",
|
|
" 1 0.000 0.000 0.000 0.000 string.py:63(_need_to_wrap_around)\n",
|
|
" 1 0.000 0.000 0.000 0.000 _validators.py:226(validate_bool_kwarg)\n",
|
|
" 2 0.000 0.000 0.000 0.000 base.py:974(dtype)\n",
|
|
" 3 0.000 0.000 0.000 0.000 range.py:299(stop)\n",
|
|
" 2 0.000 0.000 0.000 0.000 managers.py:235(items)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {built-in method _codecs.lookup_error}\n",
|
|
" 2 0.000 0.000 0.000 0.000 indexing.py:2665(need_slice)\n",
|
|
" 3 0.000 0.000 0.000 0.000 {built-in method builtins.id}\n",
|
|
" 2 0.000 0.000 0.000 0.000 format.py:959(<dictcomp>)\n",
|
|
" 1 0.000 0.000 0.000 0.000 managers.py:2242(<listcomp>)\n",
|
|
" 2 0.000 0.000 0.000 0.000 concat.py:766(_maybe_check_integrity)\n",
|
|
" 1 0.000 0.000 0.000 0.000 <frozen codecs>:260(__init__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 nanops.py:209(_maybe_get_mask)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'pop' of 'list' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 base.py:2756(_is_multi)\n",
|
|
" 1 0.000 0.000 0.000 0.000 function.py:64(__call__)\n",
|
|
" 1 0.000 0.000 0.000 0.000 format.py:697(_initialize_colspace)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'append' of 'collections.deque' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'isdigit' of 'str' objects}\n",
|
|
" 2 0.000 0.000 0.000 0.000 {built-in method numpy.asanyarray}\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'isspace' of 'str' objects}\n",
|
|
" 1 0.000 0.000 0.000 0.000 nanops.py:1491(_maybe_null_out)\n",
|
|
" 1 0.000 0.000 0.000 0.000 fromnumeric.py:1034(_argsort_dispatcher)\n",
|
|
" 1 0.000 0.000 0.000 0.000 _parser.py:1056(_could_be_tzname)\n",
|
|
" 1 0.000 0.000 0.000 0.000 numeric.py:2403(_array_equal_dispatcher)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'values' of 'dict' objects}\n",
|
|
" 2 0.000 0.000 0.000 0.000 {function FrozenList.__getitem__ at 0x7f0665c34860}\n",
|
|
" 1 0.000 0.000 0.000 0.000 _parser.py:186(__iter__)\n",
|
|
" 2 0.000 0.000 0.000 0.000 parse.py:108(_noop)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {method 'reverse' of 'list' objects}\n",
|
|
" 2 0.000 0.000 0.000 0.000 _json.py:1102(__enter__)\n",
|
|
" 2 0.000 0.000 0.000 0.000 base.py:1954(nlevels)\n",
|
|
" 1 0.000 0.000 0.000 0.000 interactiveshell.py:637(get_ipython)\n",
|
|
" 1 0.000 0.000 0.000 0.000 range.py:228(_constructor)\n",
|
|
" 1 0.000 0.000 0.000 0.000 format.py:670(_initialize_formatters)\n",
|
|
" 1 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_period}\n",
|
|
" 1 0.000 0.000 0.000 0.000 shape_base.py:77(_atleast_2d_dispatcher)"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"%%prun\n",
|
|
"test_pandas()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "18519e3f-6d5e-477a-a3e5-1fd0e0b30fcc",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Results\n",
|
|
"\n",
|
|
"Polars and Pandas both processed the same data (8000 rows, categorical data represented as strings).\n",
|
|
"\n",
|
|
"\n",
|
|
"## Versions\n",
|
|
"\n",
|
|
"\n",
|
|
"* Pandas: 2.1.4\n",
|
|
"* Polars: 0.20.26\n",
|
|
"\n",
|
|
"## Memory usage comparison\n",
|
|
"\n",
|
|
"File on disk: 6,0 MB (du -sh), 8000 rows, 7 columns. \n",
|
|
"\n",
|
|
"* Polars: 4,76 MB\n",
|
|
"* Pandas: 7,56 MB\n",
|
|
"\n",
|
|
"-> Polars was more memory efficient: ~ 1,6 times less memory\n",
|
|
"\n",
|
|
"\n",
|
|
"## Profile comparison\n",
|
|
"\n",
|
|
"* Polars: 256 function calls (253 primitive calls) in 0.020 seconds\n",
|
|
"* Pandas: 46681 function calls (46472 primitive calls) in 0.113 seconds\n",
|
|
"\n",
|
|
"-> Polars was ~ 5,6 times faster and needed ~ 180x less function and primitive calls. \n",
|
|
"\n",
|
|
"\n",
|
|
"## Conclusion\n",
|
|
"\n",
|
|
"Polars should be used whenever possible."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "bdbf106d-4117-491b-9773-85dcd9d5914c",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3 (ipykernel)",
|
|
"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.11.5"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|