Skip to content

Instantly share code, notes, and snippets.

@highsmallxu
Created July 10, 2022 20:31
Show Gist options
  • Save highsmallxu/f9f9b5ae155314e75ce2c6197fb9be6b to your computer and use it in GitHub Desktop.
Save highsmallxu/f9f9b5ae155314e75ce2c6197fb9be6b to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import dask.dataframe as dd\n",
"import datatable as dt\n",
"import matplotlib.pyplot as plt\n",
"from datatable import f, by, sum"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 63.7 ms, sys: 16.5 ms, total: 80.2 ms\n",
"Wall time: 81.8 ms\n"
]
}
],
"source": [
"%%time\n",
"df = pd.read_csv(\"data3.csv\")\n",
"df_agg = df.groupby(\"date_updated_local\").agg({\"amount_cost_eur\": \"sum\"})"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 71.6 ms, sys: 13.2 ms, total: 84.8 ms\n",
"Wall time: 84.2 ms\n"
]
}
],
"source": [
"%%time\n",
"df = dd.read_csv(\"data3.csv\")\n",
"df_agg = df.groupby(\"date_updated_local\").agg({\"amount_cost_eur\": \"sum\"}).compute()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 879 ms, sys: 32 ms, total: 911 ms\n",
"Wall time: 98.4 ms\n"
]
}
],
"source": [
"%%time\n",
"df = dt.fread(\"data3.csv\")\n",
"df_agg = df[:,sum(f.amount_cost_eur), by(f.date_updated_local)]"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure()\n",
"ax = fig.add_axes([0,0,1,1])\n",
"ax.set_ylabel('ms')\n",
"ax.set_title('Speed of aggregating csv file')\n",
"lib = ['pandas', 'dask', 'datatable']\n",
"perf = [81.8,84.2,98.4]\n",
"ax.bar(lib,perf)\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.9.0 64-bit ('3.9.0')",
"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.9.0"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "285b4027c56aef32f9cffa7b798ac9ff266d7923f973d093da0977b0f49ab1ea"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment