Skip to content

Commit 00bb34b

Browse files
committed
Working on Pandas
1 parent bdffca7 commit 00bb34b

File tree

2 files changed

+42
-38
lines changed

2 files changed

+42
-38
lines changed

README.md

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3076,7 +3076,7 @@ from pandas import Series, DataFrame
30763076
**Ordered dictionary with a name.**
30773077

30783078
```python
3079-
>>> sr = Series([1, 2], index=['x', 'y'], name='a')
3079+
>>> Series([1, 2], index=['x', 'y'], name='a')
30803080
x 1
30813081
y 2
30823082
Name: a, dtype: int64
@@ -3107,15 +3107,24 @@ Name: a, dtype: int64
31073107

31083108
```python
31093109
<Sr> = <Sr>.append(<Sr>) # Or: pd.concat(<coll_of_Sr>)
3110-
<Sr> = <Sr>.combine_first(<Sr>) # Adds items that are not yet present (extends).
3111-
combine, update?
3110+
<Sr> = <Sr>.combine_first(<Sr>) # Adds items that are not yet present.
3111+
<Sr>.update(<Sr>) # Updates items that are already present.
31123112
```
31133113

3114-
#### Aggregations:
31153114
```python
3116-
<el> = <Sr>.sum/max/mean/idxmax/all()
3117-
<el> = <agg_func>(<Sr>)
3118-
<el> = <Sr>.apply/agg(<agg_func>) # Apply can only accept strings.
3115+
<el> = <Sr>.sum/max/mean/idxmax/all() # Or: <Sr>.aggregate(<agg_func>)
3116+
<Sr> = <Sr>.diff/cumsum/rank/pct_change() # Or: <Sr>.agg/transform(<trans_func>)
3117+
<Sr> = <Sr>.fillna(<el>) # Or: <Sr>.apply/agg/transform/map(<map_func>)
3118+
```
3119+
* **Also: `'ffill()'` and `'interpolate()'`.**
3120+
* **The way `'aggregate()'` and `'transform()'` find out whether a 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.**
3121+
3122+
#### Apply, Aggregate, Transform:
3123+
```python
3124+
>>> sr = Series([1, 2], index=['x', 'y'], name='a')
3125+
x 1
3126+
y 2
3127+
Name: a, dtype: int64
31193128
```
31203129

31213130
```python
@@ -3128,13 +3137,6 @@ combine, update?
31283137
+-------------+--------+-----------+---------------+
31293138
```
31303139

3131-
#### Transformations:
3132-
```python
3133-
<Sr> = <Sr>.diff/cumsum/rank/pct_change() # …/fillna/ffill/interpolate()
3134-
<Sr> = <Sr>.apply/agg/transform(<trans_func>)
3135-
map?
3136-
```
3137-
31383140
```python
31393141
+-------------+--------+-----------+---------------+
31403142
| | 'rank' | ['rank'] | {'r': 'rank'} |
@@ -3186,12 +3188,11 @@ b 3 4
31863188
```
31873189

31883190
```python
3189-
<Sr> = <DF>.sum/max/mean/idxmax/all()
3190-
<Sr> = <DF>.apply/agg/transform(<agg_func>)
3191-
<DF> = <DF>.diff/cumsum/rank() # …/pct_change/fillna/ffill/interpolate()
3192-
<DF> = <DF>.apply/agg/transform(<trans_func>)
3193-
<DF> = <DF>.applymap(<func>) # Apply a function to a Dataframe elementwise.
3191+
<Sr> = <DF>.sum/max/mean/idxmax/all() # Or: <DF>.apply/agg/transform(<agg_func>)
3192+
<DF> = <DF>.diff/cumsum/rank/pct_change() # Or: <DF>.apply/agg/transform(<trans_func>)
3193+
<DF> = <DF>.fillna(<el>) # Or: <DF>.applymap(<map_func>)
31943194
```
3195+
* **Also: `'ffill()'` and `'interpolate()'`.**
31953196
* **All operations operate on columns by default. Use `'axis=1'` parameter to process the rows instead.**
31963197

31973198
#### Apply, Aggregate, Transform:

index.html

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2613,7 +2613,7 @@
26132613
<span class="hljs-keyword">from</span> pandas <span class="hljs-keyword">import</span> Series, DataFrame
26142614
</code></pre></div>
26152615

2616-
<div><h3 id="series">Series</h3><p><strong>Ordered dictionary with a name.</strong></p><pre><code class="python language-python hljs"><span class="hljs-meta">&gt;&gt;&gt; </span>sr = Series([<span class="hljs-number">1</span>, <span class="hljs-number">2</span>], index=[<span class="hljs-string">'x'</span>, <span class="hljs-string">'y'</span>], name=<span class="hljs-string">'a'</span>)
2616+
<div><h3 id="series">Series</h3><p><strong>Ordered dictionary with a name.</strong></p><pre><code class="python language-python hljs"><span class="hljs-meta">&gt;&gt;&gt; </span>Series([<span class="hljs-number">1</span>, <span class="hljs-number">2</span>], index=[<span class="hljs-string">'x'</span>, <span class="hljs-string">'y'</span>], name=<span class="hljs-string">'a'</span>)
26172617
x <span class="hljs-number">1</span>
26182618
y <span class="hljs-number">2</span>
26192619
Name: a, dtype: int64
@@ -2636,12 +2636,21 @@
26362636
&lt;Sr&gt; = &lt;Sr&gt; +-*/ &lt;el/Sr&gt; <span class="hljs-comment"># Non-matching keys get value NaN.</span>
26372637
</code></pre>
26382638
<pre><code class="python language-python hljs">&lt;Sr&gt; = &lt;Sr&gt;.append(&lt;Sr&gt;) <span class="hljs-comment"># Or: pd.concat(&lt;coll_of_Sr&gt;)</span>
2639-
&lt;Sr&gt; = &lt;Sr&gt;.combine_first(&lt;Sr&gt;) <span class="hljs-comment"># Adds items that are not yet present (extends).</span>
2640-
combine, update?
2639+
&lt;Sr&gt; = &lt;Sr&gt;.combine_first(&lt;Sr&gt;) <span class="hljs-comment"># Adds items that are not yet present.</span>
2640+
&lt;Sr&gt;.update(&lt;Sr&gt;) <span class="hljs-comment"># Updates items that are already present.</span>
26412641
</code></pre>
2642-
<div><h4 id="aggregations">Aggregations:</h4><pre><code class="python language-python hljs">&lt;el&gt; = &lt;Sr&gt;.sum/max/mean/idxmax/all()
2643-
&lt;el&gt; = &lt;agg_func&gt;(&lt;Sr&gt;)
2644-
&lt;el&gt; = &lt;Sr&gt;.apply/agg(&lt;agg_func&gt;) <span class="hljs-comment"># Apply can only accept strings.</span>
2642+
<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>
2644+
&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>
2645+
</code></pre>
2646+
<ul>
2647+
<li><strong>Also: <code class="python hljs"><span class="hljs-string">'ffill()'</span></code> and <code class="python hljs"><span class="hljs-string">'interpolate()'</span></code>.</strong></li>
2648+
<li><strong>The way <code class="python hljs"><span class="hljs-string">'aggregate()'</span></code> and <code class="python hljs"><span class="hljs-string">'transform()'</span></code> find out whether a 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>
2649+
</ul>
2650+
<div><h4 id="applyaggregatetransform">Apply, Aggregate, Transform:</h4><pre><code class="python language-python hljs"><span class="hljs-meta">&gt;&gt;&gt; </span>sr = Series([<span class="hljs-number">1</span>, <span class="hljs-number">2</span>], index=[<span class="hljs-string">'x'</span>, <span class="hljs-string">'y'</span>], name=<span class="hljs-string">'a'</span>)
2651+
x <span class="hljs-number">1</span>
2652+
y <span class="hljs-number">2</span>
2653+
Name: a, dtype: int64
26452654
</code></pre></div>
26462655

26472656
<pre><code class="python language-python hljs">+-------------+--------+-----------+---------------+
@@ -2652,11 +2661,6 @@
26522661
| | | | |
26532662
+-------------+--------+-----------+---------------+
26542663
</code></pre>
2655-
<div><h4 id="transformations">Transformations:</h4><pre><code class="python language-python hljs">&lt;Sr&gt; = &lt;Sr&gt;.diff/cumsum/rank/pct_change() <span class="hljs-comment"># …/fillna/ffill/interpolate()</span>
2656-
&lt;Sr&gt; = &lt;Sr&gt;.apply/agg/transform(&lt;trans_func&gt;)
2657-
map?
2658-
</code></pre></div>
2659-
26602664
<pre><code class="python language-python hljs">+-------------+--------+-----------+---------------+
26612665
| | <span class="hljs-string">'rank'</span> | [<span class="hljs-string">'rank'</span>] | {<span class="hljs-string">'r'</span>: <span class="hljs-string">'rank'</span>} |
26622666
+-------------+--------+-----------+---------------+
@@ -2692,16 +2696,15 @@
26922696
&lt;DF&gt; = &lt;DF&gt;.transpose() <span class="hljs-comment"># Rotates the table.</span>
26932697
&lt;DF&gt; = &lt;DF&gt;.melt(id_vars=column_key/s) <span class="hljs-comment"># Melts on columns.</span>
26942698
</code></pre>
2695-
<pre><code class="python language-python hljs">&lt;Sr&gt; = &lt;DF&gt;.sum/max/mean/idxmax/all()
2696-
&lt;Sr&gt; = &lt;DF&gt;.apply/agg/transform(&lt;agg_func&gt;)
2697-
&lt;DF&gt; = &lt;DF&gt;.diff/cumsum/rank() <span class="hljs-comment"># …/pct_change/fillna/ffill/interpolate()</span>
2698-
&lt;DF&gt; = &lt;DF&gt;.apply/agg/transform(&lt;trans_func&gt;)
2699-
&lt;DF&gt; = &lt;DF&gt;.applymap(&lt;func&gt;) <span class="hljs-comment"># Apply a function to a Dataframe elementwise.</span>
2699+
<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>
2700+
&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>
2701+
&lt;DF&gt; = &lt;DF&gt;.fillna(&lt;el&gt;) <span class="hljs-comment"># Or: &lt;DF&gt;.applymap(&lt;map_func&gt;)</span>
27002702
</code></pre>
27012703
<ul>
2704+
<li><strong>Also: <code class="python hljs"><span class="hljs-string">'ffill()'</span></code> and <code class="python hljs"><span class="hljs-string">'interpolate()'</span></code>.</strong></li>
27022705
<li><strong>All operations operate on columns by default. Use <code class="python hljs"><span class="hljs-string">'axis=1'</span></code> parameter to process the rows instead.</strong> </li>
27032706
</ul>
2704-
<div><h4 id="applyaggregatetransform">Apply, Aggregate, Transform:</h4><pre><code class="python language-python hljs"><span class="hljs-meta">&gt;&gt;&gt; </span>df = 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>])
2707+
<div><h4 id="applyaggregatetransform-1">Apply, Aggregate, Transform:</h4><pre><code class="python language-python hljs"><span class="hljs-meta">&gt;&gt;&gt; </span>df = 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>])
27052708
x y
27062709
a <span class="hljs-number">1</span> <span class="hljs-number">2</span>
27072710
b <span class="hljs-number">3</span> <span class="hljs-number">4</span>
@@ -2783,7 +2786,7 @@
27832786
<ul>
27842787
<li><strong>Result of an operation is a dataframe with index made up of group keys. Use <code class="python hljs"><span class="hljs-string">'&lt;DF&gt;.reset_index()'</span></code> to move the index back into it's own column.</strong></li>
27852788
</ul>
2786-
<div><h4 id="aggregations-1">Aggregations:</h4><pre><code class="python language-python hljs">&lt;DF&gt; = &lt;GB&gt;.sum/max/mean/idxmax/all()
2789+
<div><h4 id="aggregations">Aggregations:</h4><pre><code class="python language-python hljs">&lt;DF&gt; = &lt;GB&gt;.sum/max/mean/idxmax/all()
27872790
&lt;DF&gt; = &lt;GB&gt;.apply/agg/transform(&lt;agg_func&gt;)
27882791
</code></pre></div>
27892792

@@ -2807,7 +2810,7 @@
28072810
| | c <span class="hljs-number">11</span> <span class="hljs-number">13</span> | | |
28082811
+-------------+------------+-------------+---------------+
28092812
</code></pre>
2810-
<div><h4 id="transformations-1">Transformations:</h4><pre><code class="python language-python hljs">&lt;DF&gt; = &lt;GB&gt;.diff/cumsum/rank() <span class="hljs-comment"># …/pct_change/fillna/ffill()</span>
2813+
<div><h4 id="transformations">Transformations:</h4><pre><code class="python language-python hljs">&lt;DF&gt; = &lt;GB&gt;.diff/cumsum/rank() <span class="hljs-comment"># …/pct_change/fillna/ffill()</span>
28112814
&lt;DF&gt; = &lt;GB&gt;.agg/transform(&lt;trans_func&gt;)
28122815
</code></pre></div>
28132816

0 commit comments

Comments
 (0)