cmc/data-science
Personal data science learning files.
clone: git clone https://gitbay.org/cmc/data-science.git
main: notebooks/polars.ipynb · raw
1{
2 "cells": [
3 {
4 "cell_type": "markdown",
5 "metadata": {},
6 "source": [
7 "# Polars\n",
8 "\n",
9 "Testing out [Polars](https://pola.rs/)."
10 ]
11 },
12 {
13 "cell_type": "code",
14 "execution_count": 2,
15 "metadata": {},
16 "outputs": [
17 {
18 "name": "stdout",
19 "output_type": "stream",
20 "text": [
21 "Defaulting to user installation because normal site-packages is not writeable\n",
22 "Requirement already satisfied: polars[all] in /Users/cmc/Library/Python/3.9/lib/python/site-packages (0.20.3)\n",
23 "Collecting connectorx>=0.3.2\n",
24 " Downloading connectorx-0.3.2-cp39-cp39-macosx_11_0_arm64.whl (43.7 MB)\n",
25 "\u001b[K |████████████████████████████████| 43.7 MB 709 kB/s eta 0:00:01\n",
26 "\u001b[?25hCollecting pydantic\n",
27 " Downloading pydantic-2.5.3-py3-none-any.whl (381 kB)\n",
28 "\u001b[K |████████████████████████████████| 381 kB 31.7 MB/s eta 0:00:01\n",
29 "\u001b[?25hCollecting pandas\n",
30 " Downloading pandas-2.1.4-cp39-cp39-macosx_11_0_arm64.whl (11.0 MB)\n",
31 "\u001b[K |████████████████████████████████| 11.0 MB 46.7 MB/s eta 0:00:01\n",
32 "\u001b[?25hCollecting sqlalchemy\n",
33 " Downloading SQLAlchemy-2.0.25-cp39-cp39-macosx_11_0_arm64.whl (2.1 MB)\n",
34 "\u001b[K |████████████████████████████████| 2.1 MB 8.0 MB/s eta 0:00:01\n",
35 "\u001b[?25hCollecting pyiceberg>=0.5.0\n",
36 " Downloading pyiceberg-0.5.1.tar.gz (418 kB)\n",
37 "\u001b[K |████████████████████████████████| 418 kB 14.7 MB/s eta 0:00:01\n",
38 "\u001b[?25h\u001b[33m WARNING: Value for prefixed-purelib does not match. Please report this to <https://github.com/pypa/pip/issues/10151>\n",
39 " distutils: /private/var/folders/7q/fr3mjnb5279fv8k1tz643s140000gn/T/pip-build-env-nk7hp5uy/normal/lib/python3.9/site-packages\n",
40 " sysconfig: /Library/Python/3.9/site-packages\u001b[0m\n",
41 "\u001b[33m WARNING: Value for prefixed-platlib does not match. Please report this to <https://github.com/pypa/pip/issues/10151>\n",
42 " distutils: /private/var/folders/7q/fr3mjnb5279fv8k1tz643s140000gn/T/pip-build-env-nk7hp5uy/normal/lib/python3.9/site-packages\n",
43 " sysconfig: /Library/Python/3.9/site-packages\u001b[0m\n",
44 "\u001b[33m WARNING: Additional context:\n",
45 " user = False\n",
46 " home = None\n",
47 " root = None\n",
48 " prefix = '/private/var/folders/7q/fr3mjnb5279fv8k1tz643s140000gn/T/pip-build-env-nk7hp5uy/normal'\u001b[0m\n",
49 "\u001b[33m WARNING: Value for prefixed-purelib does not match. Please report this to <https://github.com/pypa/pip/issues/10151>\n",
50 " distutils: /private/var/folders/7q/fr3mjnb5279fv8k1tz643s140000gn/T/pip-build-env-nk7hp5uy/overlay/lib/python3.9/site-packages\n",
51 " sysconfig: /Library/Python/3.9/site-packages\u001b[0m\n",
52 "\u001b[33m WARNING: Value for prefixed-platlib does not match. Please report this to <https://github.com/pypa/pip/issues/10151>\n",
53 " distutils: /private/var/folders/7q/fr3mjnb5279fv8k1tz643s140000gn/T/pip-build-env-nk7hp5uy/overlay/lib/python3.9/site-packages\n",
54 " sysconfig: /Library/Python/3.9/site-packages\u001b[0m\n",
55 "\u001b[33m WARNING: Additional context:\n",
56 " user = False\n",
57 " home = None\n",
58 " root = None\n",
59 " prefix = '/private/var/folders/7q/fr3mjnb5279fv8k1tz643s140000gn/T/pip-build-env-nk7hp5uy/overlay'\u001b[0m\n",
60 " Installing build dependencies ... \u001b[?25ldone\n",
61 "\u001b[?25h Getting requirements to build wheel ... \u001b[?25ldone\n",
62 "\u001b[?25h Preparing wheel metadata ... \u001b[?25ldone\n",
63 "\u001b[?25hCollecting gevent\n",
64 " Downloading gevent-23.9.1-cp39-cp39-macosx_11_0_universal2.whl (2.9 MB)\n",
65 "\u001b[K |████████████████████████████████| 2.9 MB 27.4 MB/s eta 0:00:01\n",
66 "\u001b[?25hRequirement already satisfied: numpy>=1.16.0 in /Users/cmc/Library/Python/3.9/lib/python/site-packages (from polars[all]) (1.26.3)\n",
67 "Collecting cloudpickle\n",
68 " Downloading cloudpickle-3.0.0-py3-none-any.whl (20 kB)\n",
69 "Collecting adbc_driver_sqlite\n",
70 " Downloading adbc_driver_sqlite-0.9.0-py3-none-macosx_11_0_arm64.whl (696 kB)\n",
71 "\u001b[K |████████████████████████████████| 696 kB 27.0 MB/s eta 0:00:01\n",
72 "\u001b[?25hCollecting xlsxwriter\n",
73 " Downloading XlsxWriter-3.1.9-py3-none-any.whl (154 kB)\n",
74 "\u001b[K |████████████████████████████████| 154 kB 11.5 MB/s eta 0:00:01\n",
75 "\u001b[?25hCollecting xlsx2csv>=0.8.0\n",
76 " Downloading xlsx2csv-0.8.2.tar.gz (227 kB)\n",
77 "\u001b[K |████████████████████████████████| 227 kB 42.7 MB/s eta 0:00:01\n",
78 "\u001b[?25h\u001b[33m WARNING: Value for prefixed-purelib does not match. Please report this to <https://github.com/pypa/pip/issues/10151>\n",
79 " distutils: /private/var/folders/7q/fr3mjnb5279fv8k1tz643s140000gn/T/pip-build-env-05_qjymb/normal/lib/python3.9/site-packages\n",
80 " sysconfig: /Library/Python/3.9/site-packages\u001b[0m\n",
81 "\u001b[33m WARNING: Value for prefixed-platlib does not match. Please report this to <https://github.com/pypa/pip/issues/10151>\n",
82 " distutils: /private/var/folders/7q/fr3mjnb5279fv8k1tz643s140000gn/T/pip-build-env-05_qjymb/normal/lib/python3.9/site-packages\n",
83 " sysconfig: /Library/Python/3.9/site-packages\u001b[0m\n",
84 "\u001b[33m WARNING: Additional context:\n",
85 " user = False\n",
86 " home = None\n",
87 " root = None\n",
88 " prefix = '/private/var/folders/7q/fr3mjnb5279fv8k1tz643s140000gn/T/pip-build-env-05_qjymb/normal'\u001b[0m\n",
89 "\u001b[33m WARNING: Value for prefixed-purelib does not match. Please report this to <https://github.com/pypa/pip/issues/10151>\n",
90 " distutils: /private/var/folders/7q/fr3mjnb5279fv8k1tz643s140000gn/T/pip-build-env-05_qjymb/overlay/lib/python3.9/site-packages\n",
91 " sysconfig: /Library/Python/3.9/site-packages\u001b[0m\n",
92 "\u001b[33m WARNING: Value for prefixed-platlib does not match. Please report this to <https://github.com/pypa/pip/issues/10151>\n",
93 " distutils: /private/var/folders/7q/fr3mjnb5279fv8k1tz643s140000gn/T/pip-build-env-05_qjymb/overlay/lib/python3.9/site-packages\n",
94 " sysconfig: /Library/Python/3.9/site-packages\u001b[0m\n",
95 "\u001b[33m WARNING: Additional context:\n",
96 " user = False\n",
97 " home = None\n",
98 " root = None\n",
99 " prefix = '/private/var/folders/7q/fr3mjnb5279fv8k1tz643s140000gn/T/pip-build-env-05_qjymb/overlay'\u001b[0m\n",
100 " Installing build dependencies ... \u001b[?25ldone\n",
101 "\u001b[?25h Getting requirements to build wheel ... \u001b[?25ldone\n",
102 "\u001b[?25h Preparing wheel metadata ... \u001b[?25ldone\n",
103 "\u001b[?25h\u001b[33m WARNING: Generating metadata for package xlsx2csv produced metadata for project name unknown. Fix your #egg=xlsx2csv fragments.\u001b[0m\n",
104 "\u001b[33mWARNING: Discarding https://files.pythonhosted.org/packages/c9/d1/70613896bd07a49cfb19312838b8ffb29232e6be5c8e381b953473468e5b/xlsx2csv-0.8.2.tar.gz#sha256=cdd272c82f8b32f1cee76aeaef87b2ee3549661fddf90f7ecf2310967a16fc84 (from https://pypi.org/simple/xlsx2csv/). Requested unknown from https://files.pythonhosted.org/packages/c9/d1/70613896bd07a49cfb19312838b8ffb29232e6be5c8e381b953473468e5b/xlsx2csv-0.8.2.tar.gz#sha256=cdd272c82f8b32f1cee76aeaef87b2ee3549661fddf90f7ecf2310967a16fc84 (from polars[all]) has inconsistent name: filename has 'xlsx2csv', but metadata has 'UNKNOWN'\u001b[0m\n",
105 " Downloading xlsx2csv-0.8.1-py3-none-any.whl (13 kB)\n",
106 "Collecting deltalake>=0.14.0\n",
107 " Downloading deltalake-0.15.1-cp38-abi3-macosx_11_0_arm64.whl (19.1 MB)\n",
108 "\u001b[K |████████████████████████████████| 19.1 MB 14.5 MB/s eta 0:00:01\n",
109 "\u001b[?25hRequirement already satisfied: fsspec in /Users/cmc/Library/Python/3.9/lib/python/site-packages (from polars[all]) (2023.12.2)\n",
110 "Collecting pyarrow>=7.0.0\n",
111 " Downloading pyarrow-14.0.2-cp39-cp39-macosx_11_0_arm64.whl (24.0 MB)\n",
112 "\u001b[K |████████████████████████████████| 24.0 MB 1.1 MB/s eta 0:00:011\n",
113 "\u001b[?25hCollecting hvplot>=0.9.1\n",
114 " Downloading hvplot-0.9.1-py2.py3-none-any.whl (3.2 MB)\n",
115 "\u001b[K |████████████████████████████████| 3.2 MB 22.8 MB/s eta 0:00:01 |█████▍ | 542 kB 22.8 MB/s eta 0:00:01\n",
116 "\u001b[?25hCollecting pyarrow-hotfix\n",
117 " Downloading pyarrow_hotfix-0.6-py3-none-any.whl (7.9 kB)\n",
118 "Collecting colorcet>=2\n",
119 " Downloading colorcet-3.0.1-py2.py3-none-any.whl (1.7 MB)\n",
120 "\u001b[K |████████████████████████████████| 1.7 MB 34.2 MB/s eta 0:00:01\n",
121 "\u001b[?25hCollecting param<3.0,>=1.12.0\n",
122 " Downloading param-2.0.1-py3-none-any.whl (113 kB)\n",
123 "\u001b[K |████████████████████████████████| 113 kB 44.1 MB/s eta 0:00:01\n",
124 "\u001b[?25hRequirement already satisfied: packaging in /Users/cmc/Library/Python/3.9/lib/python/site-packages (from hvplot>=0.9.1->polars[all]) (23.1)\n",
125 "Collecting bokeh>=1.0.0\n",
126 " Downloading bokeh-3.3.3-py3-none-any.whl (6.8 MB)\n",
127 "\u001b[K |████████████████████████████████| 6.8 MB 11.7 MB/s eta 0:00:01\n",
128 "\u001b[?25hCollecting holoviews>=1.11.0\n",
129 " Downloading holoviews-1.18.1-py2.py3-none-any.whl (4.3 MB)\n",
130 "\u001b[K |████████████████████████████████| 4.3 MB 37.8 MB/s eta 0:00:01\n",
131 "\u001b[?25hCollecting panel>=0.11.0\n",
132 " Downloading panel-1.3.6-py2.py3-none-any.whl (20.8 MB)\n",
133 "\u001b[K |████████████████████████████████| 20.8 MB 14.8 MB/s eta 0:00:01\n",
134 "\u001b[?25hRequirement already satisfied: Jinja2>=2.9 in /Users/cmc/Library/Python/3.9/lib/python/site-packages (from bokeh>=1.0.0->hvplot>=0.9.1->polars[all]) (3.1.2)\n",
135 "Collecting pillow>=7.1.0\n",
136 " Downloading pillow-10.2.0-cp39-cp39-macosx_11_0_arm64.whl (3.3 MB)\n",
137 "\u001b[K |████████████████████████████████| 3.3 MB 14.5 MB/s eta 0:00:01\n",
138 "\u001b[?25hRequirement already satisfied: tornado>=5.1 in /Users/cmc/Library/Python/3.9/lib/python/site-packages (from bokeh>=1.0.0->hvplot>=0.9.1->polars[all]) (6.3.3)\n",
139 "Collecting xyzservices>=2021.09.1\n",
140 " Downloading xyzservices-2023.10.1-py3-none-any.whl (56 kB)\n",
141 "\u001b[K |████████████████████████████████| 56 kB 18.1 MB/s eta 0:00:01\n",
142 "\u001b[?25hRequirement already satisfied: PyYAML>=3.10 in /Users/cmc/Library/Python/3.9/lib/python/site-packages (from bokeh>=1.0.0->hvplot>=0.9.1->polars[all]) (6.0.1)\n",
143 "Collecting contourpy>=1\n",
144 " Downloading contourpy-1.2.0-cp39-cp39-macosx_11_0_arm64.whl (242 kB)\n",
145 "\u001b[K |████████████████████████████████| 242 kB 63.1 MB/s eta 0:00:01\n",
146 "\u001b[?25hCollecting pyct>=0.4.4\n",
147 " Downloading pyct-0.5.0-py2.py3-none-any.whl (15 kB)\n",
148 "Collecting pyviz-comms>=0.7.4\n",
149 " Downloading pyviz_comms-3.0.0-py3-none-any.whl (82 kB)\n",
150 "\u001b[K |████████████████████████████████| 82 kB 3.2 MB/s eta 0:00:01\n",
151 "\u001b[?25hRequirement already satisfied: MarkupSafe>=2.0 in /Users/cmc/Library/Python/3.9/lib/python/site-packages (from Jinja2>=2.9->bokeh>=1.0.0->hvplot>=0.9.1->polars[all]) (2.1.3)\n",
152 "Collecting pytz>=2020.1\n",
153 " Using cached pytz-2023.3.post1-py2.py3-none-any.whl (502 kB)\n",
154 "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/cmc/Library/Python/3.9/lib/python/site-packages (from pandas->polars[all]) (2.8.2)\n",
155 "Collecting tzdata>=2022.1\n",
156 " Downloading tzdata-2023.4-py2.py3-none-any.whl (346 kB)\n",
157 "\u001b[K |████████████████████████████████| 346 kB 20.1 MB/s eta 0:00:01\n",
158 "\u001b[?25hCollecting tqdm>=4.48.0\n",
159 " Using cached tqdm-4.66.1-py3-none-any.whl (78 kB)\n",
160 "Collecting markdown-it-py\n",
161 " Using cached markdown_it_py-3.0.0-py3-none-any.whl (87 kB)\n",
162 "Requirement already satisfied: bleach in /Users/cmc/Library/Python/3.9/lib/python/site-packages (from panel>=0.11.0->hvplot>=0.9.1->polars[all]) (6.0.0)\n",
163 "Collecting markdown\n",
164 " Downloading Markdown-3.5.1-py3-none-any.whl (102 kB)\n",
165 "\u001b[K |████████████████████████████████| 102 kB 26.5 MB/s ta 0:00:01\n",
166 "\u001b[?25hCollecting linkify-it-py\n",
167 " Downloading linkify_it_py-2.0.2-py3-none-any.whl (19 kB)\n",
168 "Requirement already satisfied: typing-extensions in /Users/cmc/Library/Python/3.9/lib/python/site-packages (from panel>=0.11.0->hvplot>=0.9.1->polars[all]) (4.8.0)\n",
169 "Requirement already satisfied: requests in /Users/cmc/Library/Python/3.9/lib/python/site-packages (from panel>=0.11.0->hvplot>=0.9.1->polars[all]) (2.31.0)\n",
170 "Collecting mdit-py-plugins\n",
171 " Downloading mdit_py_plugins-0.4.0-py3-none-any.whl (54 kB)\n",
172 "\u001b[K |████████████████████████████████| 54 kB 12.4 MB/s eta 0:00:01\n",
173 "\u001b[?25hCollecting sortedcontainers==2.4.0\n",
174 " Downloading sortedcontainers-2.4.0-py2.py3-none-any.whl (29 kB)\n",
175 "Collecting rich<14.0.0,>=10.11.0\n",
176 " Downloading rich-13.7.0-py3-none-any.whl (240 kB)\n",
177 "\u001b[K |████████████████████████████████| 240 kB 52.6 MB/s eta 0:00:01\n",
178 "\u001b[?25hCollecting click<9.0.0,>=7.1.1\n",
179 " Downloading click-8.1.7-py3-none-any.whl (97 kB)\n",
180 "\u001b[K |████████████████████████████████| 97 kB 9.8 MB/s eta 0:00:01\n",
181 "\u001b[?25hCollecting strictyaml<2.0.0,>=1.7.0\n",
182 " Downloading strictyaml-1.7.3-py3-none-any.whl (123 kB)\n",
183 "\u001b[K |████████████████████████████████| 123 kB 52.8 MB/s eta 0:00:01\n",
184 "\u001b[?25hCollecting pyparsing<4.0.0,>=3.1.0\n",
185 " Using cached pyparsing-3.1.1-py3-none-any.whl (103 kB)\n",
186 "Collecting mmhash3<4.0.0,>=3.0.0\n",
187 " Downloading mmhash3-3.0.1-cp39-cp39-macosx_11_0_arm64.whl (12 kB)\n",
188 "Collecting pydantic-core==2.14.6\n",
189 " Downloading pydantic_core-2.14.6-cp39-cp39-macosx_11_0_arm64.whl (1.7 MB)\n",
190 "\u001b[K |████████████████████████████████| 1.7 MB 10.7 MB/s eta 0:00:01\n",
191 "\u001b[?25hCollecting annotated-types>=0.4.0\n",
192 " Downloading annotated_types-0.6.0-py3-none-any.whl (12 kB)\n",
193 "Requirement already satisfied: six>=1.5 in /Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pandas->polars[all]) (1.15.0)\n",
194 "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/cmc/Library/Python/3.9/lib/python/site-packages (from requests->panel>=0.11.0->hvplot>=0.9.1->polars[all]) (3.2.0)\n",
195 "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/cmc/Library/Python/3.9/lib/python/site-packages (from requests->panel>=0.11.0->hvplot>=0.9.1->polars[all]) (2.0.4)\n",
196 "Requirement already satisfied: certifi>=2017.4.17 in /Users/cmc/Library/Python/3.9/lib/python/site-packages (from requests->panel>=0.11.0->hvplot>=0.9.1->polars[all]) (2023.7.22)\n",
197 "Requirement already satisfied: idna<4,>=2.5 in /Users/cmc/Library/Python/3.9/lib/python/site-packages (from requests->panel>=0.11.0->hvplot>=0.9.1->polars[all]) (3.4)\n",
198 "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /Users/cmc/Library/Python/3.9/lib/python/site-packages (from rich<14.0.0,>=10.11.0->pyiceberg>=0.5.0->polars[all]) (2.16.1)\n",
199 "Collecting mdurl~=0.1\n",
200 " Using cached mdurl-0.1.2-py3-none-any.whl (10.0 kB)\n",
201 "Collecting adbc-driver-manager\n",
202 " Downloading adbc_driver_manager-0.9.0-cp39-cp39-macosx_11_0_arm64.whl (261 kB)\n",
203 "\u001b[K |████████████████████████████████| 261 kB 3.5 MB/s eta 0:00:01\n",
204 "\u001b[?25hRequirement already satisfied: webencodings in /Users/cmc/Library/Python/3.9/lib/python/site-packages (from bleach->panel>=0.11.0->hvplot>=0.9.1->polars[all]) (0.5.1)\n",
205 "Collecting zope.event\n",
206 " Downloading zope.event-5.0-py3-none-any.whl (6.8 kB)\n",
207 "Collecting zope.interface\n",
208 " Downloading zope.interface-6.1-cp39-cp39-macosx_11_0_arm64.whl (202 kB)\n",
209 "\u001b[K |████████████████████████████████| 202 kB 18.6 MB/s eta 0:00:01\n",
210 "\u001b[?25hCollecting greenlet>=2.0.0\n",
211 " Downloading greenlet-3.0.3-cp39-cp39-macosx_11_0_universal2.whl (269 kB)\n",
212 "\u001b[K |████████████████████████████████| 269 kB 5.4 MB/s eta 0:00:01\n",
213 "\u001b[?25hCollecting uc-micro-py\n",
214 " Downloading uc_micro_py-1.0.2-py3-none-any.whl (6.2 kB)\n",
215 "Requirement already satisfied: importlib-metadata>=4.4 in /Users/cmc/Library/Python/3.9/lib/python/site-packages (from markdown->panel>=0.11.0->hvplot>=0.9.1->polars[all]) (6.8.0)\n",
216 "Requirement already satisfied: zipp>=0.5 in /Users/cmc/Library/Python/3.9/lib/python/site-packages (from importlib-metadata>=4.4->markdown->panel>=0.11.0->hvplot>=0.9.1->polars[all]) (3.17.0)\n",
217 "Requirement already satisfied: setuptools in /Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/site-packages (from zope.event->gevent->polars[all]) (58.0.4)\n",
218 "Building wheels for collected packages: pyiceberg\n",
219 " Building wheel for pyiceberg (PEP 517) ... \u001b[?25ldone\n",
220 "\u001b[?25h Created wheel for pyiceberg: filename=pyiceberg-0.5.1-cp39-cp39-macosx_14_0_arm64.whl size=527582 sha256=460f2fb33d28df351dd1f65841874e740e9e5f1d4953f861d877ec4b0e94911c\n",
221 " Stored in directory: /Users/cmc/Library/Caches/pip/wheels/fb/8c/3f/f25c02bddafeae467122e8757c9275c5981cf708f1d182f494\n",
222 "Successfully built pyiceberg\n",
223 "Installing collected packages: tzdata, pytz, mdurl, xyzservices, uc-micro-py, pillow, param, pandas, markdown-it-py, contourpy, tqdm, pyviz-comms, pyct, mdit-py-plugins, markdown, linkify-it-py, bokeh, pydantic-core, panel, colorcet, annotated-types, zope.interface, zope.event, strictyaml, sortedcontainers, rich, pyparsing, pydantic, pyarrow-hotfix, pyarrow, mmhash3, holoviews, greenlet, click, adbc-driver-manager, xlsxwriter, xlsx2csv, sqlalchemy, pyiceberg, hvplot, gevent, deltalake, connectorx, cloudpickle, adbc-driver-sqlite\n",
224 "Successfully installed adbc-driver-manager-0.9.0 adbc-driver-sqlite-0.9.0 annotated-types-0.6.0 bokeh-3.3.3 click-8.1.7 cloudpickle-3.0.0 colorcet-3.0.1 connectorx-0.3.2 contourpy-1.2.0 deltalake-0.15.1 gevent-23.9.1 greenlet-3.0.3 holoviews-1.18.1 hvplot-0.9.1 linkify-it-py-2.0.2 markdown-3.5.1 markdown-it-py-3.0.0 mdit-py-plugins-0.4.0 mdurl-0.1.2 mmhash3-3.0.1 pandas-2.1.4 panel-1.3.6 param-2.0.1 pillow-10.2.0 pyarrow-14.0.2 pyarrow-hotfix-0.6 pyct-0.5.0 pydantic-2.5.3 pydantic-core-2.14.6 pyiceberg-0.5.1 pyparsing-3.1.1 pytz-2023.3.post1 pyviz-comms-3.0.0 rich-13.7.0 sortedcontainers-2.4.0 sqlalchemy-2.0.25 strictyaml-1.7.3 tqdm-4.66.1 tzdata-2023.4 uc-micro-py-1.0.2 xlsx2csv-0.8.1 xlsxwriter-3.1.9 xyzservices-2023.10.1 zope.event-5.0 zope.interface-6.1\n",
225 "\u001b[33mWARNING: You are using pip version 21.2.4; however, version 23.3.2 is available.\n",
226 "You should consider upgrading via the '/Applications/Xcode.app/Contents/Developer/usr/bin/python3 -m pip install --upgrade pip' command.\u001b[0m\n",
227 "Note: you may need to restart the kernel to use updated packages.\n"
228 ]
229 }
230 ],
231 "source": [
232 "pip install 'polars[all]'"
233 ]
234 },
235 {
236 "cell_type": "code",
237 "execution_count": 3,
238 "metadata": {},
239 "outputs": [],
240 "source": [
241 "import polars as pl\n",
242 "from datetime import datetime"
243 ]
244 },
245 {
246 "cell_type": "code",
247 "execution_count": 4,
248 "metadata": {},
249 "outputs": [
250 {
251 "name": "stdout",
252 "output_type": "stream",
253 "text": [
254 "shape: (3, 3)\n",
255 "┌─────────┬─────────────────────┬───────┐\n",
256 "│ integer ┆ date ┆ float │\n",
257 "│ --- ┆ --- ┆ --- │\n",
258 "│ i64 ┆ datetime[μs] ┆ f64 │\n",
259 "╞═════════╪═════════════════════╪═══════╡\n",
260 "│ 1 ┆ 2022-01-01 00:00:00 ┆ 4.0 │\n",
261 "│ 2 ┆ 2022-01-02 00:00:00 ┆ 5.0 │\n",
262 "│ 3 ┆ 2022-01-03 00:00:00 ┆ 6.0 │\n",
263 "└─────────┴─────────────────────┴───────┘\n"
264 ]
265 }
266 ],
267 "source": [
268 "df = pl.DataFrame(\n",
269 " {\n",
270 " \"integer\": [1, 2, 3],\n",
271 " \"date\": [\n",
272 " datetime(2022, 1, 1),\n",
273 " datetime(2022, 1, 2),\n",
274 " datetime(2022, 1, 3),\n",
275 " ],\n",
276 " \"float\": [4.0, 5.0, 6.0],\n",
277 " }\n",
278 ")\n",
279 "\n",
280 "print(df)"
281 ]
282 },
283 {
284 "cell_type": "code",
285 "execution_count": 8,
286 "metadata": {},
287 "outputs": [
288 {
289 "name": "stdout",
290 "output_type": "stream",
291 "text": [
292 "shape: (16_598, 11)\n",
293 "┌───────┬─────────────────┬──────────┬──────┬───┬──────────┬──────────┬─────────────┬──────────────┐\n",
294 "│ Rank ┆ Name ┆ Platform ┆ Year ┆ … ┆ EU_Sales ┆ JP_Sales ┆ Other_Sales ┆ Global_Sales │\n",
295 "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- │\n",
296 "│ i64 ┆ str ┆ str ┆ i64 ┆ ┆ f64 ┆ f64 ┆ f64 ┆ f64 │\n",
297 "╞═══════╪═════════════════╪══════════╪══════╪═══╪══════════╪══════════╪═════════════╪══════════════╡\n",
298 "│ 1 ┆ Wii Sports ┆ Wii ┆ 2006 ┆ … ┆ 29.02 ┆ 3.77 ┆ 8.46 ┆ 82.74 │\n",
299 "│ 2 ┆ Super Mario ┆ NES ┆ 1985 ┆ … ┆ 3.58 ┆ 6.81 ┆ 0.77 ┆ 40.24 │\n",
300 "│ ┆ Bros. ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n",
301 "│ 3 ┆ Mario Kart Wii ┆ Wii ┆ 2008 ┆ … ┆ 12.88 ┆ 3.79 ┆ 3.31 ┆ 35.82 │\n",
302 "│ 4 ┆ Wii Sports ┆ Wii ┆ 2009 ┆ … ┆ 11.01 ┆ 3.28 ┆ 2.96 ┆ 33.0 │\n",
303 "│ ┆ Resort ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n",
304 "│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │\n",
305 "│ 16597 ┆ Men in Black ┆ GC ┆ 2003 ┆ … ┆ 0.0 ┆ 0.0 ┆ 0.0 ┆ 0.01 │\n",
306 "│ ┆ II: Alien ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n",
307 "│ ┆ Escape ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n",
308 "│ 16598 ┆ SCORE ┆ PS2 ┆ 2008 ┆ … ┆ 0.0 ┆ 0.0 ┆ 0.0 ┆ 0.01 │\n",
309 "│ ┆ International ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n",
310 "│ ┆ Baja 1000: T… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n",
311 "│ 16599 ┆ Know How 2 ┆ DS ┆ 2010 ┆ … ┆ 0.01 ┆ 0.0 ┆ 0.0 ┆ 0.01 │\n",
312 "│ 16600 ┆ Spirits & ┆ GBA ┆ 2003 ┆ … ┆ 0.0 ┆ 0.0 ┆ 0.0 ┆ 0.01 │\n",
313 "│ ┆ Spells ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n",
314 "└───────┴─────────────────┴──────────┴──────┴───┴──────────┴──────────┴─────────────┴──────────────┘\n"
315 ]
316 }
317 ],
318 "source": [
319 "df = pl.read_csv(\"../data_files/video_game_sales.csv\", ignore_errors=True)\n",
320 "print(df)"
321 ]
322 },
323 {
324 "cell_type": "code",
325 "execution_count": 12,
326 "metadata": {},
327 "outputs": [
328 {
329 "data": {
330 "text/html": [
331 "<div><style>\n",
332 ".dataframe > thead > tr,\n",
333 ".dataframe > tbody > tr {\n",
334 " text-align: right;\n",
335 " white-space: pre-wrap;\n",
336 "}\n",
337 "</style>\n",
338 "<small>shape: (40, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Year</th><th>count</th></tr><tr><td>i64</td><td>u32</td></tr></thead><tbody><tr><td>1982</td><td>36</td></tr><tr><td>1999</td><td>338</td></tr><tr><td>2014</td><td>582</td></tr><tr><td>1993</td><td>60</td></tr><tr><td>2016</td><td>344</td></tr><tr><td>2008</td><td>1428</td></tr><tr><td>2009</td><td>1431</td></tr><tr><td>1988</td><td>15</td></tr><tr><td>2003</td><td>775</td></tr><tr><td>1994</td><td>121</td></tr><tr><td>2001</td><td>482</td></tr><tr><td>2020</td><td>1</td></tr><tr><td>…</td><td>…</td></tr><tr><td>1997</td><td>289</td></tr><tr><td>1991</td><td>41</td></tr><tr><td>2006</td><td>1008</td></tr><tr><td>1989</td><td>17</td></tr><tr><td>2017</td><td>3</td></tr><tr><td>2004</td><td>763</td></tr><tr><td>2005</td><td>941</td></tr><tr><td>1983</td><td>17</td></tr><tr><td>2015</td><td>614</td></tr><tr><td>2010</td><td>1259</td></tr><tr><td>1984</td><td>14</td></tr><tr><td>1995</td><td>219</td></tr></tbody></table></div>"
339 ],
340 "text/plain": [
341 "shape: (40, 2)\n",
342 "┌──────┬───────┐\n",
343 "│ Year ┆ count │\n",
344 "│ --- ┆ --- │\n",
345 "│ i64 ┆ u32 │\n",
346 "╞══════╪═══════╡\n",
347 "│ 1982 ┆ 36 │\n",
348 "│ 1999 ┆ 338 │\n",
349 "│ 2014 ┆ 582 │\n",
350 "│ 1993 ┆ 60 │\n",
351 "│ … ┆ … │\n",
352 "│ 2015 ┆ 614 │\n",
353 "│ 2010 ┆ 1259 │\n",
354 "│ 1984 ┆ 14 │\n",
355 "│ 1995 ┆ 219 │\n",
356 "└──────┴───────┘"
357 ]
358 },
359 "execution_count": 12,
360 "metadata": {},
361 "output_type": "execute_result"
362 }
363 ],
364 "source": [
365 "df.group_by(\"Year\").count()"
366 ]
367 },
368 {
369 "cell_type": "code",
370 "execution_count": 18,
371 "metadata": {},
372 "outputs": [
373 {
374 "data": {
375 "text/html": [
376 "<div><style>\n",
377 ".dataframe > thead > tr,\n",
378 ".dataframe > tbody > tr {\n",
379 " text-align: right;\n",
380 " white-space: pre-wrap;\n",
381 "}\n",
382 "</style>\n",
383 "<small>shape: (2, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Year</th><th>Genre</th></tr><tr><td>i64</td><td>str</td></tr></thead><tbody><tr><td>null</td><td>null</td></tr><tr><td>null</td><td>null</td></tr></tbody></table></div>"
384 ],
385 "text/plain": [
386 "shape: (2, 2)\n",
387 "┌──────┬───────┐\n",
388 "│ Year ┆ Genre │\n",
389 "│ --- ┆ --- │\n",
390 "│ i64 ┆ str │\n",
391 "╞══════╪═══════╡\n",
392 "│ null ┆ null │\n",
393 "│ null ┆ null │\n",
394 "└──────┴───────┘"
395 ]
396 },
397 "execution_count": 18,
398 "metadata": {},
399 "output_type": "execute_result"
400 }
401 ],
402 "source": [
403 "df.select(pl.col(\"Year\").sort().head(2), pl.col(\"Genre\").filter(pl.col(\"Year\") == 1).sum())"
404 ]
405 }
406 ],
407 "metadata": {
408 "kernelspec": {
409 "display_name": "Python 3",
410 "language": "python",
411 "name": "python3"
412 },
413 "language_info": {
414 "codemirror_mode": {
415 "name": "ipython",
416 "version": 3
417 },
418 "file_extension": ".py",
419 "mimetype": "text/x-python",
420 "name": "python",
421 "nbconvert_exporter": "python",
422 "pygments_lexer": "ipython3",
423 "version": "3.9.6"
424 }
425 },
426 "nbformat": 4,
427 "nbformat_minor": 2
428}