Browse Source

Small rewrite of Pandas

pull/187/head
Jure Šorn 10 months ago
parent
commit
693cf461f8
2 changed files with 32 additions and 30 deletions
  1. 29
      README.md
  2. 33
      index.html

29
README.md

@ -1397,7 +1397,8 @@ finally:
``` ```
* **Code inside the `'else'` block will only be executed if `'try'` block had no exceptions.** * **Code inside the `'else'` block will only be executed if `'try'` block had no exceptions.**
* **Code inside the `'finally'` block will always be executed (unless a signal is received).** * **Code inside the `'finally'` block will always be executed (unless a signal is received).**
* **All variables that are initialized in executed blocks are also visible in all subsequent blocks, as well as outside the try/except clause (only function block delimits scope).**
* **All variables that are initialized in executed blocks are also visible in all subsequent blocks
, as well as outside the try statement (only function block delimits scope).**
* **To catch signals use `'signal.signal(signal_number, <func>)'`.** * **To catch signals use `'signal.signal(signal_number, <func>)'`.**
### Catching Exceptions ### Catching Exceptions
@ -3155,14 +3156,14 @@ Name: a, dtype: int64
``` ```
```python ```python
<el> = <Sr>.loc[key] # Or: <Sr>.iloc[index]
<Sr> = <Sr>.loc[keys] # Or: <Sr>.iloc[indexes]
<Sr> = <Sr>.loc[from_key : to_key_inclusive] # Or: <Sr>.iloc[from_i : to_i_exclusive]
<el> = <Sr>.loc[key] # Or: <Sr>.iloc[i]
<Sr> = <Sr>.loc[keys] # Or: <Sr>.iloc[coll_of_i]
<Sr> = <Sr>.loc[from_key:to_key_inc] # Or: <Sr>.iloc[from_i:to_i_exc]
``` ```
```python ```python
<el> = <Sr>[key/index] # Or: <Sr>.key
<Sr> = <Sr>[keys/indexes] # Or: <Sr>[<keys_slice/slice>]
<el> = <Sr>[key/i] # Or: <Sr>.<key>
<Sr> = <Sr>[keys/coll_of_i] # Or: <Sr>[key/i : key/i]
<Sr> = <Sr>[bools] # Or: <Sr>.loc/iloc[bools] <Sr> = <Sr>[bools] # Or: <Sr>.loc/iloc[bools]
``` ```
@ -3213,7 +3214,7 @@ y 3
| | y 2 | y 2 | y 2 | | | y 2 | y 2 | y 2 |
+---------------+-------------+-------------+---------------+ +---------------+-------------+-------------+---------------+
``` ```
* **Keys/indexes/bools can't be tuples because `'obj[x, y]'` is converted to `'obj[(x, y)]'`!**
* **Keys/indices/bools can't be tuples because `'obj[x, y]'` is converted to `'obj[(x, y)]'`!**
* **Methods ffill(), interpolate(), fillna() and dropna() accept `'inplace=True'`.** * **Methods ffill(), interpolate(), fillna() and dropna() accept `'inplace=True'`.**
* **Last result has a hierarchical index. Use `'<Sr>[key_1, key_2]'` to get its values.** * **Last result has a hierarchical index. Use `'<Sr>[key_1, key_2]'` to get its values.**
@ -3233,14 +3234,14 @@ b 3 4
``` ```
```python ```python
<el> = <DF>.loc[row_key, column_key] # Or: <DF>.iloc[row_index, column_index]
<Sr/DF> = <DF>.loc[row_key/s] # Or: <DF>.iloc[row_index/es]
<Sr/DF> = <DF>.loc[:, column_key/s] # Or: <DF>.iloc[:, column_index/es]
<DF> = <DF>.loc[row_bools, column_bools] # Or: <DF>.iloc[row_bools, column_bools]
<el> = <DF>.loc[row_key, col_key] # Or: <DF>.iloc[row_i, col_i]
<Sr/DF> = <DF>.loc[row_key/s] # Or: <DF>.iloc[row_i/s]
<Sr/DF> = <DF>.loc[:, col_key/s] # Or: <DF>.iloc[:, col_i/s]
<DF> = <DF>.loc[row_bools, col_bools] # Or: <DF>.iloc[row_bools, col_bools]
``` ```
```python ```python
<Sr/DF> = <DF>[column_key/s] # Or: <DF>.column_key
<Sr/DF> = <DF>[col_key/s] # Or: <DF>.<col_key>
<DF> = <DF>[row_bools] # Keeps rows as specified by bools. <DF> = <DF>[row_bools] # Keeps rows as specified by bools.
<DF> = <DF>[<DF_of_bools>] # Assigns NaN to items that are False in bools. <DF> = <DF>[<DF_of_bools>] # Assigns NaN to items that are False in bools.
``` ```
@ -3251,10 +3252,10 @@ b 3 4
``` ```
```python ```python
<DF> = <DF>.set_index(column_key) # Replaces row keys with values from the column.
<DF> = <DF>.set_index(col_key) # Replaces row keys with column's values.
<DF> = <DF>.reset_index(drop=False) # Drops or moves row keys to column named index. <DF> = <DF>.reset_index(drop=False) # Drops or moves row keys to column named index.
<DF> = <DF>.sort_index(ascending=True) # Sorts rows by row keys. Use `axis=1` for cols. <DF> = <DF>.sort_index(ascending=True) # Sorts rows by row keys. Use `axis=1` for cols.
<DF> = <DF>.sort_values(column_key/s) # Sorts rows by passed column/s. Also `axis=1`.
<DF> = <DF>.sort_values(col_key/s) # Sorts rows by passed column/s. Also `axis=1`.
``` ```
#### DataFrame — Merge, Join, Concat: #### DataFrame — Merge, Join, Concat:

33
index.html

@ -54,7 +54,7 @@
<body> <body>
<header> <header>
<aside>April 19, 2024</aside>
<aside>April 21, 2024</aside>
<a href="https://gto76.github.io" rel="author">Jure Šorn</a> <a href="https://gto76.github.io" rel="author">Jure Šorn</a>
</header> </header>
@ -1190,7 +1190,8 @@ LogicOp = Enum(<span class="hljs-string">'LogicOp'</span>, {<span class="hljs-st
<ul> <ul>
<li><strong>Code inside the <code class="python hljs"><span class="hljs-string">'else'</span></code> block will only be executed if <code class="python hljs"><span class="hljs-string">'try'</span></code> block had no exceptions.</strong></li> <li><strong>Code inside the <code class="python hljs"><span class="hljs-string">'else'</span></code> block will only be executed if <code class="python hljs"><span class="hljs-string">'try'</span></code> block had no exceptions.</strong></li>
<li><strong>Code inside the <code class="python hljs"><span class="hljs-string">'finally'</span></code> block will always be executed (unless a signal is received).</strong></li> <li><strong>Code inside the <code class="python hljs"><span class="hljs-string">'finally'</span></code> block will always be executed (unless a signal is received).</strong></li>
<li><strong>All variables that are initialized in executed blocks are also visible in all subsequent blocks, as well as outside the try/except clause (only function block delimits scope).</strong></li>
<li><strong>All variables that are initialized in executed blocks are also visible in all subsequent blocks
, as well as outside the try statement (only function block delimits scope).</strong></li>
<li><strong>To catch signals use <code class="python hljs"><span class="hljs-string">'signal.signal(signal_number, &lt;func&gt;)'</span></code>.</strong></li> <li><strong>To catch signals use <code class="python hljs"><span class="hljs-string">'signal.signal(signal_number, &lt;func&gt;)'</span></code>.</strong></li>
</ul> </ul>
<div><h3 id="catchingexceptions">Catching Exceptions</h3><pre><code class="python language-python hljs"><span class="hljs-keyword">except</span> &lt;exception&gt;: ... <div><h3 id="catchingexceptions">Catching Exceptions</h3><pre><code class="python language-python hljs"><span class="hljs-keyword">except</span> &lt;exception&gt;: ...
@ -2587,12 +2588,12 @@ Name: a, dtype: int64
&lt;Sr&gt; = pd.Series(&lt;dict&gt;) <span class="hljs-comment"># Takes dictionary's keys for index.</span> &lt;Sr&gt; = pd.Series(&lt;dict&gt;) <span class="hljs-comment"># Takes dictionary's keys for index.</span>
&lt;Sr&gt; = pd.Series(&lt;dict/Series&gt;, index=&lt;list&gt;) <span class="hljs-comment"># Only keeps items with keys specified in index.</span> &lt;Sr&gt; = pd.Series(&lt;dict/Series&gt;, index=&lt;list&gt;) <span class="hljs-comment"># Only keeps items with keys specified in index.</span>
</code></pre> </code></pre>
<pre><code class="python language-python hljs">&lt;el&gt; = &lt;Sr&gt;.loc[key] <span class="hljs-comment"># Or: &lt;Sr&gt;.iloc[index]</span>
&lt;Sr&gt; = &lt;Sr&gt;.loc[keys] <span class="hljs-comment"># Or: &lt;Sr&gt;.iloc[indexes]</span>
&lt;Sr&gt; = &lt;Sr&gt;.loc[from_key : to_key_inclusive] <span class="hljs-comment"># Or: &lt;Sr&gt;.iloc[from_i : to_i_exclusive]</span>
<pre><code class="python language-python hljs">&lt;el&gt; = &lt;Sr&gt;.loc[key] <span class="hljs-comment"># Or: &lt;Sr&gt;.iloc[i]</span>
&lt;Sr&gt; = &lt;Sr&gt;.loc[keys] <span class="hljs-comment"># Or: &lt;Sr&gt;.iloc[coll_of_i]</span>
&lt;Sr&gt; = &lt;Sr&gt;.loc[from_key:to_key_inc] <span class="hljs-comment"># Or: &lt;Sr&gt;.iloc[from_i:to_i_exc]</span>
</code></pre> </code></pre>
<pre><code class="python language-python hljs">&lt;el&gt; = &lt;Sr&gt;[key/index] <span class="hljs-comment"># Or: &lt;Sr&gt;.key</span>
&lt;Sr&gt; = &lt;Sr&gt;[keys/indexes] <span class="hljs-comment"># Or: &lt;Sr&gt;[&lt;keys_slice/slice&gt;]</span>
<pre><code class="python language-python hljs">&lt;el&gt; = &lt;Sr&gt;[key/i] <span class="hljs-comment"># Or: &lt;Sr&gt;.&lt;key&gt;</span>
&lt;Sr&gt; = &lt;Sr&gt;[keys/coll_of_i] <span class="hljs-comment"># Or: &lt;Sr&gt;[key/i : key/i]</span>
&lt;Sr&gt; = &lt;Sr&gt;[bools] <span class="hljs-comment"># Or: &lt;Sr&gt;.loc/iloc[bools]</span> &lt;Sr&gt; = &lt;Sr&gt;[bools] <span class="hljs-comment"># Or: &lt;Sr&gt;.loc/iloc[bools]</span>
</code></pre> </code></pre>
<pre><code class="python language-python hljs">&lt;Sr&gt; = &lt;Sr&gt; &gt; &lt;el/Sr&gt; <span class="hljs-comment"># Returns a Series of bools.</span> <pre><code class="python language-python hljs">&lt;Sr&gt; = &lt;Sr&gt; &gt; &lt;el/Sr&gt; <span class="hljs-comment"># Returns a Series of bools.</span>
@ -2631,7 +2632,7 @@ y <span class="hljs-number">3</span>
</code></pre> </code></pre>
<ul> <ul>
<li><strong>Keys/indexes/bools can't be tuples because <code class="python hljs"><span class="hljs-string">'obj[x, y]'</span></code> is converted to <code class="python hljs"><span class="hljs-string">'obj[(x, y)]'</span></code>!</strong></li>
<li><strong>Keys/indices/bools can't be tuples because <code class="python hljs"><span class="hljs-string">'obj[x, y]'</span></code> is converted to <code class="python hljs"><span class="hljs-string">'obj[(x, y)]'</span></code>!</strong></li>
<li><strong>Methods ffill(), interpolate(), fillna() and dropna() accept <code class="python hljs"><span class="hljs-string">'inplace=True'</span></code>.</strong></li> <li><strong>Methods ffill(), interpolate(), fillna() and dropna() accept <code class="python hljs"><span class="hljs-string">'inplace=True'</span></code>.</strong></li>
<li><strong>Last result has a hierarchical index. Use <code class="python hljs"><span class="hljs-string">'&lt;Sr&gt;[key_1, key_2]'</span></code> to get its values.</strong></li> <li><strong>Last result has a hierarchical index. Use <code class="python hljs"><span class="hljs-string">'&lt;Sr&gt;[key_1, key_2]'</span></code> to get its values.</strong></li>
</ul> </ul>
@ -2645,22 +2646,22 @@ b <span class="hljs-number">3</span> <span class="hljs-number">4</span>
<pre><code class="python language-python hljs">&lt;DF&gt; = pd.DataFrame(&lt;list_of_rows&gt;) <span class="hljs-comment"># Rows can be either lists, dicts or series.</span> <pre><code class="python language-python hljs">&lt;DF&gt; = pd.DataFrame(&lt;list_of_rows&gt;) <span class="hljs-comment"># Rows can be either lists, dicts or series.</span>
&lt;DF&gt; = pd.DataFrame(&lt;dict_of_columns&gt;) <span class="hljs-comment"># Columns can be either lists, dicts or series.</span> &lt;DF&gt; = pd.DataFrame(&lt;dict_of_columns&gt;) <span class="hljs-comment"># Columns can be either lists, dicts or series.</span>
</code></pre> </code></pre>
<pre><code class="python language-python hljs">&lt;el&gt; = &lt;DF&gt;.loc[row_key, column_key] <span class="hljs-comment"># Or: &lt;DF&gt;.iloc[row_index, column_index]</span>
&lt;Sr/DF&gt; = &lt;DF&gt;.loc[row_key/s] <span class="hljs-comment"># Or: &lt;DF&gt;.iloc[row_index/es]</span>
&lt;Sr/DF&gt; = &lt;DF&gt;.loc[:, column_key/s] <span class="hljs-comment"># Or: &lt;DF&gt;.iloc[:, column_index/es]</span>
&lt;DF&gt; = &lt;DF&gt;.loc[row_bools, column_bools] <span class="hljs-comment"># Or: &lt;DF&gt;.iloc[row_bools, column_bools]</span>
<pre><code class="python language-python hljs">&lt;el&gt; = &lt;DF&gt;.loc[row_key, col_key] <span class="hljs-comment"># Or: &lt;DF&gt;.iloc[row_i, col_i]</span>
&lt;Sr/DF&gt; = &lt;DF&gt;.loc[row_key/s] <span class="hljs-comment"># Or: &lt;DF&gt;.iloc[row_i/s]</span>
&lt;Sr/DF&gt; = &lt;DF&gt;.loc[:, col_key/s] <span class="hljs-comment"># Or: &lt;DF&gt;.iloc[:, col_i/s]</span>
&lt;DF&gt; = &lt;DF&gt;.loc[row_bools, col_bools] <span class="hljs-comment"># Or: &lt;DF&gt;.iloc[row_bools, col_bools]</span>
</code></pre> </code></pre>
<pre><code class="python language-python hljs">&lt;Sr/DF&gt; = &lt;DF&gt;[column_key/s] <span class="hljs-comment"># Or: &lt;DF&gt;.column_key</span>
<pre><code class="python language-python hljs">&lt;Sr/DF&gt; = &lt;DF&gt;[col_key/s] <span class="hljs-comment"># Or: &lt;DF&gt;.&lt;col_key&gt;</span>
&lt;DF&gt; = &lt;DF&gt;[row_bools] <span class="hljs-comment"># Keeps rows as specified by bools.</span> &lt;DF&gt; = &lt;DF&gt;[row_bools] <span class="hljs-comment"># Keeps rows as specified by bools.</span>
&lt;DF&gt; = &lt;DF&gt;[&lt;DF_of_bools&gt;] <span class="hljs-comment"># Assigns NaN to items that are False in bools.</span> &lt;DF&gt; = &lt;DF&gt;[&lt;DF_of_bools&gt;] <span class="hljs-comment"># Assigns NaN to items that are False in bools.</span>
</code></pre> </code></pre>
<pre><code class="python language-python hljs">&lt;DF&gt; = &lt;DF&gt; &gt; &lt;el/Sr/DF&gt; <span class="hljs-comment"># Returns DF of bools. Sr is treated as a row.</span> <pre><code class="python language-python hljs">&lt;DF&gt; = &lt;DF&gt; &gt; &lt;el/Sr/DF&gt; <span class="hljs-comment"># Returns DF of bools. Sr is treated as a row.</span>
&lt;DF&gt; = &lt;DF&gt; + &lt;el/Sr/DF&gt; <span class="hljs-comment"># Items with non-matching keys get value NaN.</span> &lt;DF&gt; = &lt;DF&gt; + &lt;el/Sr/DF&gt; <span class="hljs-comment"># Items with non-matching keys get value NaN.</span>
</code></pre> </code></pre>
<pre><code class="python language-python hljs">&lt;DF&gt; = &lt;DF&gt;.set_index(column_key) <span class="hljs-comment"># Replaces row keys with values from the column.</span>
<pre><code class="python language-python hljs">&lt;DF&gt; = &lt;DF&gt;.set_index(col_key) <span class="hljs-comment"># Replaces row keys with column's values.</span>
&lt;DF&gt; = &lt;DF&gt;.reset_index(drop=<span class="hljs-keyword">False</span>) <span class="hljs-comment"># Drops or moves row keys to column named index.</span> &lt;DF&gt; = &lt;DF&gt;.reset_index(drop=<span class="hljs-keyword">False</span>) <span class="hljs-comment"># Drops or moves row keys to column named index.</span>
&lt;DF&gt; = &lt;DF&gt;.sort_index(ascending=<span class="hljs-keyword">True</span>) <span class="hljs-comment"># Sorts rows by row keys. Use `axis=1` for cols.</span> &lt;DF&gt; = &lt;DF&gt;.sort_index(ascending=<span class="hljs-keyword">True</span>) <span class="hljs-comment"># Sorts rows by row keys. Use `axis=1` for cols.</span>
&lt;DF&gt; = &lt;DF&gt;.sort_values(column_key/s) <span class="hljs-comment"># Sorts rows by passed column/s. Also `axis=1`.</span>
&lt;DF&gt; = &lt;DF&gt;.sort_values(col_key/s) <span class="hljs-comment"># Sorts rows by passed column/s. Also `axis=1`.</span>
</code></pre> </code></pre>
<div><h4 id="dataframemergejoinconcat">DataFrame — Merge, Join, Concat:</h4><pre><code class="python language-python hljs"><span class="hljs-meta">&gt;&gt;&gt; </span>l = pd.DataFrame([[<span class="hljs-number">1</span>, <span class="hljs-number">2</span>], [<span class="hljs-number">3</span>, <span class="hljs-number">4</span>]], index=[<span class="hljs-string">'a'</span>, <span class="hljs-string">'b'</span>], columns=[<span class="hljs-string">'x'</span>, <span class="hljs-string">'y'</span>]) <div><h4 id="dataframemergejoinconcat">DataFrame — Merge, Join, Concat:</h4><pre><code class="python language-python hljs"><span class="hljs-meta">&gt;&gt;&gt; </span>l = pd.DataFrame([[<span class="hljs-number">1</span>, <span class="hljs-number">2</span>], [<span class="hljs-number">3</span>, <span class="hljs-number">4</span>]], index=[<span class="hljs-string">'a'</span>, <span class="hljs-string">'b'</span>], columns=[<span class="hljs-string">'x'</span>, <span class="hljs-string">'y'</span>])
x y x y
@ -2932,7 +2933,7 @@ $ deactivate <span class="hljs-comment"># Deactivates the activ
<footer> <footer>
<aside>April 19, 2024</aside>
<aside>April 21, 2024</aside>
<a href="https://gto76.github.io" rel="author">Jure Šorn</a> <a href="https://gto76.github.io" rel="author">Jure Šorn</a>
</footer> </footer>

Loading…
Cancel
Save