* **The way `'aggregate()'` and `'transform()'` find out whether the passed function accepts an element or the whole Series is by passing it a single value at first and if it raises an error, then they pass it the whole Series.**
* **The way `'agg()'` and `'transform()'` find out whether the passed function accepts an element or the whole Series is by passing it a single value at first and if it raises an error, then they pass it the whole Series. `'agg()'` only accepts Attribute/Type/ValueError.**
* **All operations operate on columns by default. Use `'axis=1'` parameter to process the rows instead.**
* **All operations operate on columns by default. Use `'axis=1'` parameter to process the rows instead. Transform passes DF to a function if it rases an error after receiving a Sr.**
<li><strong>The way <codeclass="python hljs"><spanclass="hljs-string">'aggregate()'</span></code> and <codeclass="python hljs"><spanclass="hljs-string">'transform()'</span></code> find out whether the passed function accepts an element or the whole Series is by passing it a single value at first and if it raises an error, then they pass it the whole Series.</strong></li>
<li><strong>The way <codeclass="python hljs"><spanclass="hljs-string">'agg()'</span></code> and <codeclass="python hljs"><spanclass="hljs-string">'transform()'</span></code> find out whether the passed function accepts an element or the whole Series is by passing it a single value at first and if it raises an error, then they pass it the whole Series. <codeclass="python hljs"><spanclass="hljs-string">'agg()'</span></code> only accepts Attribute/Type/ValueError.</strong></li>
<li><strong>Last result has a hierarchical index. Use <codeclass="python hljs"><spanclass="hljs-string">'<Sr>[key_1, key_2]'</span></code> to get its values.</strong></li>
@ -2646,35 +2646,35 @@ c <span class="hljs-number">6</span> <span class="hljs-number">7</span>
┃ │ c . <spanclass="hljs-number">6</span><spanclass="hljs-number">7</span> │ │ │ R must be a DataFrame. ┃
<li><strong>All operations operate on columns by default. Use <codeclass="python hljs"><spanclass="hljs-string">'axis=1'</span></code> parameter to process the rows instead.</strong></li>
<li><strong>All operations operate on columns by default. Use <codeclass="python hljs"><spanclass="hljs-string">'axis=1'</span></code> parameter to process the rows instead. Transform passes DF to a function if it rases an error after receiving a Sr.</strong></li>
┃ df.agg(…) │ x <spanclass="hljs-number">4</span> │ sum <spanclass="hljs-number">4</span><spanclass="hljs-number">6</span> │ x <spanclass="hljs-number">4</span> ┃
┃ df.agg(…) │ a <spanclass="hljs-number">1</span><spanclass="hljs-number">1</span> │ rank rank │ a <spanclass="hljs-number">1</span> ┃
┃ df.trans(…) │ b <spanclass="hljs-number">2</span><spanclass="hljs-number">2</span> │ a <spanclass="hljs-number">1</span><spanclass="hljs-number">1</span> │ b <spanclass="hljs-number">2</span> ┃
┃ │ │ b <spanclass="hljs-number">2</span><spanclass="hljs-number">2</span> │ ┃
┃ df.agg(…) │ x <spanclass="hljs-number">4</span> │ sum <spanclass="hljs-number">4</span><spanclass="hljs-number">6</span> │ x <spanclass="hljs-number">4</span> ┃
┃ df.agg(…) │ a <spanclass="hljs-number">1</span><spanclass="hljs-number">1</span> │ rank rank │ a <spanclass="hljs-number">1</span> ┃
┃ df.transform(…) │ b <spanclass="hljs-number">2</span><spanclass="hljs-number">2</span> │ a <spanclass="hljs-number">1</span><spanclass="hljs-number">1</span> │ b <spanclass="hljs-number">2</span> ┃
┃ │ │ b <spanclass="hljs-number">2</span><spanclass="hljs-number">2</span> │ ┃
<li><strong>Use <codeclass="python hljs"><spanclass="hljs-string">'<DF>[col_key_1, col_key_2][row_key]'</span></code> to get the fifth result's values.</strong></li>
@ -2691,9 +2691,6 @@ b <span class="hljs-number">3</span> <span class="hljs-number">4</span>
<div><h3id="groupby">GroupBy</h3><p><strong>Object that groups together rows of a dataframe based on the value of the passed column.</strong></p><pre><codeclass="python language-python hljs"><spanclass="hljs-meta">>>></span>df = DataFrame([[<spanclass="hljs-number">1</span>, <spanclass="hljs-number">2</span>, <spanclass="hljs-number">3</span>], [<spanclass="hljs-number">4</span>, <spanclass="hljs-number">5</span>, <spanclass="hljs-number">6</span>], [<spanclass="hljs-number">7</span>, <spanclass="hljs-number">8</span>, <spanclass="hljs-number">6</span>]], index=list(<spanclass="hljs-string">'abc'</span>), columns=list(<spanclass="hljs-string">'xyz'</span>))
b <spanclass="hljs-number">4</span><spanclass="hljs-number">5</span>
@ -2703,10 +2700,12 @@ c <span class="hljs-number">7</span> <span class="hljs-number">8</span>
<pre><codeclass="python language-python hljs"><GB> = <DF>.groupby(column_key/s) <spanclass="hljs-comment"># DF is split into groups based on passed column.</span>
<DF> = <GB>.get_group(group_key/s) <spanclass="hljs-comment"># Selects a group by value of grouping column.</span>
<DF> = <GB>.apply(<func>) <spanclass="hljs-comment"># Maps each group. Func can return DF, Sr or el.</span>
<GB> = <GB>[column_key] <spanclass="hljs-comment"># A single column GB. All operations return a Sr.</span>
┃ │ z │ a <spanclass="hljs-number">1</span><spanclass="hljs-number">1</span> │ rank rank │ a <spanclass="hljs-number">1</span> ┃
┃ │ <spanclass="hljs-number">3</span><spanclass="hljs-number">1</span><spanclass="hljs-number">2</span> │ b <spanclass="hljs-number">1</span><spanclass="hljs-number">1</span> │ a <spanclass="hljs-number">1</span><spanclass="hljs-number">1</span> │ b <spanclass="hljs-number">1</span> ┃
┃ │ <spanclass="hljs-number">6</span><spanclass="hljs-number">11</span><spanclass="hljs-number">13</span> │ c <spanclass="hljs-number">2</span><spanclass="hljs-number">2</span> │ b <spanclass="hljs-number">1</span><spanclass="hljs-number">1</span> │ c <spanclass="hljs-number">2</span> ┃
┃ │ │ │ c <spanclass="hljs-number">2</span><spanclass="hljs-number">2</span> │ ┃
┃ │ a <spanclass="hljs-number">1</span><spanclass="hljs-number">2</span> │ a <spanclass="hljs-number">1</span><spanclass="hljs-number">1</span> │ │ ┃
┃ │ b <spanclass="hljs-number">11</span><spanclass="hljs-number">13</span> │ b <spanclass="hljs-number">1</span><spanclass="hljs-number">1</span> │ │ ┃
┃ │ c <spanclass="hljs-number">11</span><spanclass="hljs-number">13</span> │ c <spanclass="hljs-number">1</span><spanclass="hljs-number">1</span> │ │ ┃
┃ │ z │ a <spanclass="hljs-number">1</span><spanclass="hljs-number">1</span> │ rank rank │ a <spanclass="hljs-number">1</span> ┃
┃ │ <spanclass="hljs-number">3</span><spanclass="hljs-number">1</span><spanclass="hljs-number">2</span> │ b <spanclass="hljs-number">1</span><spanclass="hljs-number">1</span> │ a <spanclass="hljs-number">1</span><spanclass="hljs-number">1</span> │ b <spanclass="hljs-number">1</span> ┃
┃ │ <spanclass="hljs-number">6</span><spanclass="hljs-number">11</span><spanclass="hljs-number">13</span> │ c <spanclass="hljs-number">2</span><spanclass="hljs-number">2</span> │ b <spanclass="hljs-number">1</span><spanclass="hljs-number">1</span> │ c <spanclass="hljs-number">2</span> ┃
┃ │ │ │ c <spanclass="hljs-number">2</span><spanclass="hljs-number">2</span> │ ┃
┃ │ a <spanclass="hljs-number">1</span><spanclass="hljs-number">2</span> │ a <spanclass="hljs-number">1</span><spanclass="hljs-number">1</span> │ │ ┃
┃ │ b <spanclass="hljs-number">11</span><spanclass="hljs-number">13</span> │ b <spanclass="hljs-number">1</span><spanclass="hljs-number">1</span> │ │ ┃
┃ │ c <spanclass="hljs-number">11</span><spanclass="hljs-number">13</span> │ c <spanclass="hljs-number">2</span><spanclass="hljs-number">2</span> │ │ ┃
constMENU='<a href="https://raw.githubusercontent.com/gto76/python-cheatsheet/main/README.md">Download text file</a>, <a href="https://transactions.sendowl.com/products/78175486/4422834F/view">Buy PDF</a>, <a href="https://github.com/gto76/python-cheatsheet">Fork me on GitHub</a>, <a href="https://github.com/gto76/python-cheatsheet/wiki/Frequently-Asked-Questions">Check out FAQ</a> or <a href="index.html?theme=dark3">Switch to dark theme</a>.\n';