Skip to content

Commit 3d7612c

Browse files
committed
Working on Pandas
1 parent 1abd12b commit 3d7612c

File tree

2 files changed

+42
-76
lines changed

2 files changed

+42
-76
lines changed

README.md

Lines changed: 20 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -3114,7 +3114,7 @@ Name: a, dtype: int64
31143114
#### Apply, Aggregate, Transform:
31153115
```python
31163116
<el> = <Sr>.sum/max/mean/idxmax/all() # Or: <Sr>.aggregate(<agg_func>)
3117-
<Sr> = <Sr>.diff/cumsum/rank/pct_change() # Or: <Sr>.agg/transform(<trans_func>)
3117+
<Sr> = <Sr>.rank/diff/cumsum/pct_change() # Or: <Sr>.agg/transform(<trans_func>)
31183118
<Sr> = <Sr>.fillna(<el>) # Or: <Sr>.apply/agg/transform/map(<map_func>)
31193119
```
31203120
* **Also: `'ffill()'` and `'interpolate()'`.**
@@ -3234,7 +3234,7 @@ c 6 7
32343234
#### Apply, Aggregate, Transform:
32353235
```python
32363236
<Sr> = <DF>.sum/max/mean/idxmax/all() # Or: <DF>.apply/agg/transform(<agg_func>)
3237-
<DF> = <DF>.diff/cumsum/rank/pct_change() # Or: <DF>.apply/agg/transform(<trans_func>)
3237+
<DF> = <DF>.rank/diff/cumsum/pct_change() # Or: <DF>.apply/agg/transform(<trans_func>)
32383238
<DF> = <DF>.fillna(<el>) # Or: <DF>.applymap(<map_func>)
32393239
```
32403240
* **Also: `'ffill()'` and `'interpolate()'`.**
@@ -3268,15 +3268,14 @@ b 3 4
32683268
+-------------+---------------+---------------+---------------+
32693269
```
32703270

3271-
#### Encode:
3271+
#### Encode, Decode:
32723272
```python
32733273
<DF> = pd.read_json/html('<str/path/url>')
32743274
<DF> = pd.read_csv/pickle/excel('<path/url>')
32753275
<DF> = pd.read_sql('<query>', <connection>)
32763276
<DF> = pd.read_clipboard()
32773277
```
32783278

3279-
#### Decode:
32803279
```python
32813280
<dict> = <DF>.to_dict(['d/l/s/sp/r/i'])
32823281
<str> = <DF>.to_json/html/csv/markdown/latex([<path>])
@@ -3295,7 +3294,7 @@ b 3 4
32953294
#### Apply, Aggregate, Transform:
32963295
```python
32973296
<DF> = <GB>.sum/max/mean/idxmax/all() # Or: <GB>.apply/agg(<agg_func>)
3298-
<DF> = <GB>.diff/cumsum/rank/ffill() # Or: <GB>.aggregate(<trans_func>)
3297+
<DF> = <GB>.rank/diff/cumsum/ffill() # Or: <GB>.aggregate(<trans_func>)
32993298
<DF> = <GB>.fillna(<el>) # Or: <GB>.transform(<map_func>)
33003299
```
33013300

@@ -3309,37 +3308,20 @@ b 3 4
33093308
```
33103309

33113310
```python
3312-
+-------------+-------------+-------------+---------------+
3313-
| | 'sum' | ['sum'] | {'x': 'sum'} |
3314-
+-------------+-------------+-------------+---------------+
3315-
| gb.agg(…) | x y | x y | x |
3316-
| | z | sum sum | z |
3317-
| | 3 1 2 | z | 3 1 |
3318-
| | 6 11 13 | 3 1 2 | 6 11 |
3319-
| | | 6 11 13 | |
3320-
+-------------+-------------+-------------+---------------+
3321-
| gb.trans(…) | x y | | |
3322-
| | a 1 2 | | |
3323-
| | b 11 13 | | |
3324-
| | c 11 13 | | |
3325-
+-------------+-------------+-------------+---------------+
3326-
```
3327-
3328-
```python
3329-
+-------------+-------------+-------------+---------------+
3330-
| | 'rank' | ['rank'] | {'x': 'rank'} |
3331-
+-------------+-------------+-------------+---------------+
3332-
| gb.agg(…) | x y | x y | x |
3333-
| | a 1 1 | rank rank | a 1 |
3334-
| | b 1 1 | a 1 1 | b 1 |
3335-
| | c 2 2 | b 1 1 | c 2 |
3336-
| | | c 2 2 | |
3337-
+-------------+-------------+-------------+---------------+
3338-
| gb.trans(…) | x y | | |
3339-
| | a 1 1 | | |
3340-
| | b 1 1 | | |
3341-
| | c 1 1 | | |
3342-
+-------------+-------------+-------------+---------------+
3311+
+-------------+-------------+-------------+-------------+---------------+
3312+
| | 'sum' | 'rank' | ['rank'] | {'x': 'rank'} |
3313+
+-------------+-------------+-------------+-------------+---------------+
3314+
| gb.agg(…) | x y | x y | x y | x |
3315+
| | z | a 1 1 | rank rank | a 1 |
3316+
| | 3 1 2 | b 1 1 | a 1 1 | b 1 |
3317+
| | 6 11 13 | c 2 2 | b 1 1 | c 2 |
3318+
| | | | c 2 2 | |
3319+
+-------------+-------------+-------------+-------------+---------------+
3320+
| gb.trans(…) | x y | x y | | |
3321+
| | a 1 2 | a 1 1 | | |
3322+
| | b 11 13 | b 1 1 | | |
3323+
| | c 11 13 | c 1 1 | | |
3324+
+-------------+-------------+-------------+-------------+---------------+
33433325
```
33443326

33453327
### Rolling
@@ -3427,7 +3409,7 @@ import pandas, datetime
34273409
import plotly.graph_objects as go
34283410

34293411
def main():
3430-
display_data(mangle_data(*scrape_data()))
3412+
display_data(wrangle_data(*scrape_data()))
34313413

34323414
def scrape_data():
34333415
def scrape_yah(id_):
@@ -3442,7 +3424,7 @@ def scrape_data():
34423424
dow_jones.name, gold.name, bitcoin.name = 'Dow Jones', 'Gold', 'Bitcoin'
34433425
return covid, dow_jones, gold, bitcoin
34443426

3445-
def mangle_data(covid, dow_jones, gold, bitcoin):
3427+
def wrangle_data(covid, dow_jones, gold, bitcoin):
34463428
out = pandas.concat([covid, dow_jones, gold, bitcoin], axis=1)
34473429
out = out.loc['2020-02-23':].iloc[:-2]
34483430
out = out.interpolate()

index.html

Lines changed: 22 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2640,7 +2640,7 @@
26402640
&lt;Sr&gt;.update(&lt;Sr&gt;) <span class="hljs-comment"># Updates items that are already present.</span>
26412641
</code></pre>
26422642
<div><h4 id="applyaggregatetransform">Apply, Aggregate, Transform:</h4><pre><code class="python language-python hljs">&lt;el&gt; = &lt;Sr&gt;.sum/max/mean/idxmax/all() <span class="hljs-comment"># Or: &lt;Sr&gt;.aggregate(&lt;agg_func&gt;)</span>
2643-
&lt;Sr&gt; = &lt;Sr&gt;.diff/cumsum/rank/pct_change() <span class="hljs-comment"># Or: &lt;Sr&gt;.agg/transform(&lt;trans_func&gt;)</span>
2643+
&lt;Sr&gt; = &lt;Sr&gt;.rank/diff/cumsum/pct_change() <span class="hljs-comment"># Or: &lt;Sr&gt;.agg/transform(&lt;trans_func&gt;)</span>
26442644
&lt;Sr&gt; = &lt;Sr&gt;.fillna(&lt;el&gt;) <span class="hljs-comment"># Or: &lt;Sr&gt;.apply/agg/transform/map(&lt;map_func&gt;)</span>
26452645
</code></pre></div>
26462646

@@ -2737,7 +2737,7 @@
27372737
┗━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┛
27382738
</code></pre>
27392739
<div><h4 id="applyaggregatetransform-1">Apply, Aggregate, Transform:</h4><pre><code class="python language-python hljs">&lt;Sr&gt; = &lt;DF&gt;.sum/max/mean/idxmax/all() <span class="hljs-comment"># Or: &lt;DF&gt;.apply/agg/transform(&lt;agg_func&gt;)</span>
2740-
&lt;DF&gt; = &lt;DF&gt;.diff/cumsum/rank/pct_change() <span class="hljs-comment"># Or: &lt;DF&gt;.apply/agg/transform(&lt;trans_func&gt;)</span>
2740+
&lt;DF&gt; = &lt;DF&gt;.rank/diff/cumsum/pct_change() <span class="hljs-comment"># Or: &lt;DF&gt;.apply/agg/transform(&lt;trans_func&gt;)</span>
27412741
&lt;DF&gt; = &lt;DF&gt;.fillna(&lt;el&gt;) <span class="hljs-comment"># Or: &lt;DF&gt;.applymap(&lt;map_func&gt;)</span>
27422742
</code></pre></div>
27432743

@@ -2767,25 +2767,24 @@
27672767
| | | b <span class="hljs-number">2</span> <span class="hljs-number">2</span> | |
27682768
+-------------+---------------+---------------+---------------+
27692769
</code></pre>
2770-
<div><h4 id="encode-2">Encode:</h4><pre><code class="python language-python hljs">&lt;DF&gt; = pd.read_json/html(<span class="hljs-string">'&lt;str/path/url&gt;'</span>)
2770+
<div><h4 id="encodedecode">Encode, Decode:</h4><pre><code class="python language-python hljs">&lt;DF&gt; = pd.read_json/html(<span class="hljs-string">'&lt;str/path/url&gt;'</span>)
27712771
&lt;DF&gt; = pd.read_csv/pickle/excel(<span class="hljs-string">'&lt;path/url&gt;'</span>)
27722772
&lt;DF&gt; = pd.read_sql(<span class="hljs-string">'&lt;query&gt;'</span>, &lt;connection&gt;)
27732773
&lt;DF&gt; = pd.read_clipboard()
27742774
</code></pre></div>
27752775

2776-
<div><h4 id="decode-3">Decode:</h4><pre><code class="python language-python hljs">&lt;dict&gt; = &lt;DF&gt;.to_dict([<span class="hljs-string">'d/l/s/sp/r/i'</span>])
2776+
<pre><code class="python language-python hljs">&lt;dict&gt; = &lt;DF&gt;.to_dict([<span class="hljs-string">'d/l/s/sp/r/i'</span>])
27772777
&lt;str&gt; = &lt;DF&gt;.to_json/html/csv/markdown/latex([&lt;path&gt;])
27782778
&lt;DF&gt;.to_pickle/excel(&lt;path&gt;)
27792779
&lt;DF&gt;.to_sql(<span class="hljs-string">'&lt;table_name&gt;'</span>, &lt;connection&gt;)
2780-
</code></pre></div>
2781-
2780+
</code></pre>
27822781
<div><h3 id="groupby">GroupBy</h3><p><strong>Object that groups together rows of a dataframe based on the value of passed column.</strong></p><pre><code class="python language-python hljs">&lt;GB&gt; = &lt;DF&gt;.groupby(column_key/s) <span class="hljs-comment"># DF is split into groups based on passed column.</span>
27832782
&lt;DF&gt; = &lt;GB&gt;.get_group(group_key) <span class="hljs-comment"># Selects a group by value of grouping column.</span>
27842783
</code></pre></div>
27852784

27862785

27872786
<div><h4 id="applyaggregatetransform-2">Apply, Aggregate, Transform:</h4><pre><code class="python language-python hljs">&lt;DF&gt; = &lt;GB&gt;.sum/max/mean/idxmax/all() <span class="hljs-comment"># Or: &lt;GB&gt;.apply/agg(&lt;agg_func&gt;)</span>
2788-
&lt;DF&gt; = &lt;GB&gt;.diff/cumsum/rank/ffill() <span class="hljs-comment"># Or: &lt;GB&gt;.aggregate(&lt;trans_func&gt;) </span>
2787+
&lt;DF&gt; = &lt;GB&gt;.rank/diff/cumsum/ffill() <span class="hljs-comment"># Or: &lt;GB&gt;.aggregate(&lt;trans_func&gt;) </span>
27892788
&lt;DF&gt; = &lt;GB&gt;.fillna(&lt;el&gt;) <span class="hljs-comment"># Or: &lt;GB&gt;.transform(&lt;map_func&gt;)</span>
27902789
</code></pre></div>
27912790

@@ -2796,35 +2795,20 @@
27962795
<span class="hljs-number">6</span>: b <span class="hljs-number">4</span> <span class="hljs-number">5</span> <span class="hljs-number">6</span>
27972796
c <span class="hljs-number">7</span> <span class="hljs-number">8</span> <span class="hljs-number">6</span>
27982797
</code></pre>
2799-
<pre><code class="python language-python hljs">+-------------+-------------+-------------+---------------+
2800-
| | <span class="hljs-string">'sum'</span> | [<span class="hljs-string">'sum'</span>] | {<span class="hljs-string">'x'</span>: <span class="hljs-string">'sum'</span>} |
2801-
+-------------+-------------+-------------+---------------+
2802-
| gb.agg(…) | x y | x y | x |
2803-
| | z | sum sum | z |
2804-
| | <span class="hljs-number">3</span> <span class="hljs-number">1</span> <span class="hljs-number">2</span> | z | <span class="hljs-number">3</span> <span class="hljs-number">1</span> |
2805-
| | <span class="hljs-number">6</span> <span class="hljs-number">11</span> <span class="hljs-number">13</span> | <span class="hljs-number">3</span> <span class="hljs-number">1</span> <span class="hljs-number">2</span> | <span class="hljs-number">6</span> <span class="hljs-number">11</span> |
2806-
| | | <span class="hljs-number">6</span> <span class="hljs-number">11</span> <span class="hljs-number">13</span> | |
2807-
+-------------+-------------+-------------+---------------+
2808-
| gb.trans(…) | x y | | |
2809-
| | a <span class="hljs-number">1</span> <span class="hljs-number">2</span> | | |
2810-
| | b <span class="hljs-number">11</span> <span class="hljs-number">13</span> | | |
2811-
| | c <span class="hljs-number">11</span> <span class="hljs-number">13</span> | | |
2812-
+-------------+-------------+-------------+---------------+
2813-
</code></pre>
2814-
<pre><code class="python language-python hljs">+-------------+-------------+-------------+---------------+
2815-
| | <span class="hljs-string">'rank'</span> | [<span class="hljs-string">'rank'</span>] | {<span class="hljs-string">'x'</span>: <span class="hljs-string">'rank'</span>} |
2816-
+-------------+-------------+-------------+---------------+
2817-
| gb.agg(…) | x y | x y | x |
2818-
| | a <span class="hljs-number">1</span> <span class="hljs-number">1</span> | rank rank | a <span class="hljs-number">1</span> |
2819-
| | b <span class="hljs-number">1</span> <span class="hljs-number">1</span> | a <span class="hljs-number">1</span> <span class="hljs-number">1</span> | b <span class="hljs-number">1</span> |
2820-
| | c <span class="hljs-number">2</span> <span class="hljs-number">2</span> | b <span class="hljs-number">1</span> <span class="hljs-number">1</span> | c <span class="hljs-number">2</span> |
2821-
| | | c <span class="hljs-number">2</span> <span class="hljs-number">2</span> | |
2822-
+-------------+-------------+-------------+---------------+
2823-
| gb.trans(…) | x y | | |
2824-
| | a <span class="hljs-number">1</span> <span class="hljs-number">1</span> | | |
2825-
| | b <span class="hljs-number">1</span> <span class="hljs-number">1</span> | | |
2826-
| | c <span class="hljs-number">1</span> <span class="hljs-number">1</span> | | |
2827-
+-------------+-------------+-------------+---------------+
2798+
<pre><code class="python language-python hljs">+-------------+-------------+-------------+-------------+---------------+
2799+
| | <span class="hljs-string">'sum'</span> | <span class="hljs-string">'rank'</span> | [<span class="hljs-string">'rank'</span>] | {<span class="hljs-string">'x'</span>: <span class="hljs-string">'rank'</span>} |
2800+
+-------------+-------------+-------------+-------------+---------------+
2801+
| gb.agg(…) | x y | x y | x y | x |
2802+
| | z | a <span class="hljs-number">1</span> <span class="hljs-number">1</span> | rank rank | a <span class="hljs-number">1</span> |
2803+
| | <span class="hljs-number">3</span> <span class="hljs-number">1</span> <span class="hljs-number">2</span> | b <span class="hljs-number">1</span> <span class="hljs-number">1</span> | a <span class="hljs-number">1</span> <span class="hljs-number">1</span> | b <span class="hljs-number">1</span> |
2804+
| | <span class="hljs-number">6</span> <span class="hljs-number">11</span> <span class="hljs-number">13</span> | c <span class="hljs-number">2</span> <span class="hljs-number">2</span> | b <span class="hljs-number">1</span> <span class="hljs-number">1</span> | c <span class="hljs-number">2</span> |
2805+
| | | | c <span class="hljs-number">2</span> <span class="hljs-number">2</span> | |
2806+
+-------------+-------------+-------------+-------------+---------------+
2807+
| gb.trans(…) | x y | x y | | |
2808+
| | a <span class="hljs-number">1</span> <span class="hljs-number">2</span> | a <span class="hljs-number">1</span> <span class="hljs-number">1</span> | | |
2809+
| | b <span class="hljs-number">11</span> <span class="hljs-number">13</span> | b <span class="hljs-number">1</span> <span class="hljs-number">1</span> | | |
2810+
| | c <span class="hljs-number">11</span> <span class="hljs-number">13</span> | c <span class="hljs-number">1</span> <span class="hljs-number">1</span> | | |
2811+
+-------------+-------------+-------------+-------------+---------------+
28282812
</code></pre>
28292813
<div><h3 id="rolling">Rolling</h3><pre><code class="python language-python hljs">&lt;Rl_S/D/G&gt; = &lt;Sr/DF/GB&gt;.rolling(window_size) <span class="hljs-comment"># Also: `min_periods=None, center=False`.</span>
28302814
&lt;Rl_S/D&gt; = &lt;Rl_D/G&gt;[column_key/s] <span class="hljs-comment"># Or: &lt;Rl&gt;.column_key</span>
@@ -2899,7 +2883,7 @@
28992883
<span class="hljs-keyword">import</span> plotly.graph_objects <span class="hljs-keyword">as</span> go
29002884

29012885
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">main</span><span class="hljs-params">()</span>:</span>
2902-
display_data(mangle_data(*scrape_data()))
2886+
display_data(wrangle_data(*scrape_data()))
29032887

29042888
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">scrape_data</span><span class="hljs-params">()</span>:</span>
29052889
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">scrape_yah</span><span class="hljs-params">(id_)</span>:</span>
@@ -2914,7 +2898,7 @@
29142898
dow_jones.name, gold.name, bitcoin.name = <span class="hljs-string">'Dow Jones'</span>, <span class="hljs-string">'Gold'</span>, <span class="hljs-string">'Bitcoin'</span>
29152899
<span class="hljs-keyword">return</span> covid, dow_jones, gold, bitcoin
29162900

2917-
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">mangle_data</span><span class="hljs-params">(covid, dow_jones, gold, bitcoin)</span>:</span>
2901+
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">wrangle_data</span><span class="hljs-params">(covid, dow_jones, gold, bitcoin)</span>:</span>
29182902
out = pandas.concat([covid, dow_jones, gold, bitcoin], axis=<span class="hljs-number">1</span>)
29192903
out = out.loc[<span class="hljs-string">'2020-02-23'</span>:].iloc[:<span class="hljs-number">-2</span>]
29202904
out = out.interpolate()

0 commit comments

Comments
 (0)