|
2707 | 2707 | </code></pre>
|
2708 | 2708 | <pre><code class="python language-python hljs"><DF> = <DF>.set_index(column_key) <span class="hljs-comment"># Replaces row keys with values from a column.</span>
|
2709 | 2709 | <DF> = <DF>.reset_index() <span class="hljs-comment"># Moves row keys to their own column.</span>
|
2710 |
| -<DF> = <DF>.transpose() <span class="hljs-comment"># Rotates the table.</span> |
2711 |
| -<DF> = <DF>.melt(id_vars=column_key/s) <span class="hljs-comment"># Melts on columns.</span> |
| 2710 | +<DF> = <DF>.filter(<span class="hljs-string">'<regex>'</span>, axis=<span class="hljs-number">1</span>) <span class="hljs-comment"># Only keeps columns whose key matches the regex.</span> |
| 2711 | +<DF> = <DF>.melt(id_vars=column_key/s) <span class="hljs-comment"># Convers DF from wide to long format.</span> |
2712 | 2712 | </code></pre>
|
2713 | 2713 | <div><h4 id="mergejoinconcat">Merge, Join, Concat:</h4><pre><code class="python language-python hljs"><span class="hljs-meta">>>> </span>l = 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>])
|
2714 | 2714 | x y
|
|
2871 | 2871 | covid = pd.read_csv(<span class="hljs-string">'https://covid.ourworldindata.org/data/owid-covid-data.csv'</span>,
|
2872 | 2872 | usecols=[<span class="hljs-string">'date'</span>, <span class="hljs-string">'total_cases'</span>])
|
2873 | 2873 | covid = covid.groupby(<span class="hljs-string">'date'</span>).sum()
|
2874 |
| - dow, gold, btc = [scrape_yahoo(id_) <span class="hljs-keyword">for</span> id_ <span class="hljs-keyword">in</span> (<span class="hljs-string">'^DJI'</span>, <span class="hljs-string">'GC=F'</span>, <span class="hljs-string">'BTC-USD'</span>)] |
2875 |
| - dow.name, gold.name, btc.name = <span class="hljs-string">'Dow Jones'</span>, <span class="hljs-string">'Gold'</span>, <span class="hljs-string">'Bitcoin'</span> |
2876 |
| - <span class="hljs-keyword">return</span> covid, dow, gold, btc |
| 2874 | + dow, gold, bitcoin = [scrape_yahoo(id_) <span class="hljs-keyword">for</span> id_ <span class="hljs-keyword">in</span> (<span class="hljs-string">'^DJI'</span>, <span class="hljs-string">'GC=F'</span>, <span class="hljs-string">'BTC-USD'</span>)] |
| 2875 | + dow.name, gold.name, bitcoin.name = <span class="hljs-string">'Dow Jones'</span>, <span class="hljs-string">'Gold'</span>, <span class="hljs-string">'Bitcoin'</span> |
| 2876 | + <span class="hljs-keyword">return</span> covid, dow, gold, bitcoin |
2877 | 2877 |
|
2878 |
| -<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">wrangle_data</span><span class="hljs-params">(covid, dow, gold, btc)</span>:</span> |
2879 |
| - df = pandas.concat([covid, dow, gold, btc], axis=<span class="hljs-number">1</span>) |
| 2878 | +<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">wrangle_data</span><span class="hljs-params">(covid, dow, gold, bitcoin)</span>:</span> |
| 2879 | + df = pandas.concat([covid, dow, gold, bitcoin], axis=<span class="hljs-number">1</span>) |
2880 | 2880 | df = df.loc[<span class="hljs-string">'2020-02-23'</span>:].iloc[:<span class="hljs-number">-2</span>]
|
2881 | 2881 | df = df.interpolate()
|
2882 | 2882 | df.iloc[:, <span class="hljs-number">1</span>:] = df.rolling(<span class="hljs-number">10</span>, min_periods=<span class="hljs-number">1</span>, center=<span class="hljs-keyword">True</span>).mean().iloc[:, <span class="hljs-number">1</span>:]
|
|
0 commit comments