|
2640 | 2640 | <Sr>.update(<Sr>) <span class="hljs-comment"># Updates items that are already present.</span>
|
2641 | 2641 | </code></pre>
|
2642 | 2642 | <div><h4 id="applyaggregatetransform">Apply, Aggregate, Transform:</h4><pre><code class="python language-python hljs"><el> = <Sr>.sum/max/mean/idxmax/all() <span class="hljs-comment"># Or: <Sr>.aggregate(<agg_func>)</span>
|
2643 |
| -<Sr> = <Sr>.diff/cumsum/rank/pct_change() <span class="hljs-comment"># Or: <Sr>.agg/transform(<trans_func>)</span> |
| 2643 | +<Sr> = <Sr>.rank/diff/cumsum/pct_change() <span class="hljs-comment"># Or: <Sr>.agg/transform(<trans_func>)</span> |
2644 | 2644 | <Sr> = <Sr>.fillna(<el>) <span class="hljs-comment"># Or: <Sr>.apply/agg/transform/map(<map_func>)</span>
|
2645 | 2645 | </code></pre></div>
|
2646 | 2646 |
|
|
2737 | 2737 | ┗━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
2738 | 2738 | </code></pre>
|
2739 | 2739 | <div><h4 id="applyaggregatetransform-1">Apply, Aggregate, Transform:</h4><pre><code class="python language-python hljs"><Sr> = <DF>.sum/max/mean/idxmax/all() <span class="hljs-comment"># Or: <DF>.apply/agg/transform(<agg_func>)</span>
|
2740 |
| -<DF> = <DF>.diff/cumsum/rank/pct_change() <span class="hljs-comment"># Or: <DF>.apply/agg/transform(<trans_func>)</span> |
| 2740 | +<DF> = <DF>.rank/diff/cumsum/pct_change() <span class="hljs-comment"># Or: <DF>.apply/agg/transform(<trans_func>)</span> |
2741 | 2741 | <DF> = <DF>.fillna(<el>) <span class="hljs-comment"># Or: <DF>.applymap(<map_func>)</span>
|
2742 | 2742 | </code></pre></div>
|
2743 | 2743 |
|
|
2767 | 2767 | | | | b <span class="hljs-number">2</span> <span class="hljs-number">2</span> | |
|
2768 | 2768 | +-------------+---------------+---------------+---------------+
|
2769 | 2769 | </code></pre>
|
2770 |
| -<div><h4 id="encode-2">Encode:</h4><pre><code class="python language-python hljs"><DF> = pd.read_json/html(<span class="hljs-string">'<str/path/url>'</span>) |
| 2770 | +<div><h4 id="encodedecode">Encode, Decode:</h4><pre><code class="python language-python hljs"><DF> = pd.read_json/html(<span class="hljs-string">'<str/path/url>'</span>) |
2771 | 2771 | <DF> = pd.read_csv/pickle/excel(<span class="hljs-string">'<path/url>'</span>)
|
2772 | 2772 | <DF> = pd.read_sql(<span class="hljs-string">'<query>'</span>, <connection>)
|
2773 | 2773 | <DF> = pd.read_clipboard()
|
2774 | 2774 | </code></pre></div>
|
2775 | 2775 |
|
2776 |
| -<div><h4 id="decode-3">Decode:</h4><pre><code class="python language-python hljs"><dict> = <DF>.to_dict([<span class="hljs-string">'d/l/s/sp/r/i'</span>]) |
| 2776 | +<pre><code class="python language-python hljs"><dict> = <DF>.to_dict([<span class="hljs-string">'d/l/s/sp/r/i'</span>]) |
2777 | 2777 | <str> = <DF>.to_json/html/csv/markdown/latex([<path>])
|
2778 | 2778 | <DF>.to_pickle/excel(<path>)
|
2779 | 2779 | <DF>.to_sql(<span class="hljs-string">'<table_name>'</span>, <connection>)
|
2780 |
| -</code></pre></div> |
2781 |
| - |
| 2780 | +</code></pre> |
2782 | 2781 | <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"><GB> = <DF>.groupby(column_key/s) <span class="hljs-comment"># DF is split into groups based on passed column.</span>
|
2783 | 2782 | <DF> = <GB>.get_group(group_key) <span class="hljs-comment"># Selects a group by value of grouping column.</span>
|
2784 | 2783 | </code></pre></div>
|
2785 | 2784 |
|
2786 | 2785 |
|
2787 | 2786 | <div><h4 id="applyaggregatetransform-2">Apply, Aggregate, Transform:</h4><pre><code class="python language-python hljs"><DF> = <GB>.sum/max/mean/idxmax/all() <span class="hljs-comment"># Or: <GB>.apply/agg(<agg_func>)</span>
|
2788 |
| -<DF> = <GB>.diff/cumsum/rank/ffill() <span class="hljs-comment"># Or: <GB>.aggregate(<trans_func>) </span> |
| 2787 | +<DF> = <GB>.rank/diff/cumsum/ffill() <span class="hljs-comment"># Or: <GB>.aggregate(<trans_func>) </span> |
2789 | 2788 | <DF> = <GB>.fillna(<el>) <span class="hljs-comment"># Or: <GB>.transform(<map_func>)</span>
|
2790 | 2789 | </code></pre></div>
|
2791 | 2790 |
|
|
2796 | 2795 | <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>
|
2797 | 2796 | c <span class="hljs-number">7</span> <span class="hljs-number">8</span> <span class="hljs-number">6</span>
|
2798 | 2797 | </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 | ++-------------+-------------+-------------+-------------+---------------+ |
2828 | 2812 | </code></pre>
|
2829 | 2813 | <div><h3 id="rolling">Rolling</h3><pre><code class="python language-python hljs"><Rl_S/D/G> = <Sr/DF/GB>.rolling(window_size) <span class="hljs-comment"># Also: `min_periods=None, center=False`.</span>
|
2830 | 2814 | <Rl_S/D> = <Rl_D/G>[column_key/s] <span class="hljs-comment"># Or: <Rl>.column_key</span>
|
|
2899 | 2883 | <span class="hljs-keyword">import</span> plotly.graph_objects <span class="hljs-keyword">as</span> go
|
2900 | 2884 |
|
2901 | 2885 | <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())) |
2903 | 2887 |
|
2904 | 2888 | <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">scrape_data</span><span class="hljs-params">()</span>:</span>
|
2905 | 2889 | <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 | 2898 | 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>
|
2915 | 2899 | <span class="hljs-keyword">return</span> covid, dow_jones, gold, bitcoin
|
2916 | 2900 |
|
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> |
2918 | 2902 | out = pandas.concat([covid, dow_jones, gold, bitcoin], axis=<span class="hljs-number">1</span>)
|
2919 | 2903 | out = out.loc[<span class="hljs-string">'2020-02-23'</span>:].iloc[:<span class="hljs-number">-2</span>]
|
2920 | 2904 | out = out.interpolate()
|
|
0 commit comments