@ -54,7 +54,7 @@
< body >
< header >
< aside > February 4 , 2022< / aside >
< aside > February 5 , 2022< / aside >
< a href = "https://gto76.github.io" rel = "author" > Jure Šorn< / a >
< / header >
@ -2549,7 +2549,7 @@ Name: a, dtype: int64
< Sr> = < Sr> .combine_first(< Sr> ) < span class = "hljs-comment" > # Adds items that are not yet present.< / span >
< Sr> .update(< Sr> ) < span class = "hljs-comment" > # Updates items that are already present.< / span >
< / code > < / pre >
< div > < h4 id = "aggregatetransformmap" > Aggregate, Transform, Map:< / h4 > < pre > < code class = "python language-python hljs" > < el> = < Sr> .sum/max/mean/idxmax/all() < span class = "hljs-comment" > # Or: < Sr> .agg(lambda < Sr> : < el> )< / span >
< div > < h4 id = "series aggregatetransformmap" > Series — Aggregate, Transform, Map:< / h4 > < pre > < code class = "python language-python hljs" > < el> = < Sr> .sum/max/mean/idxmax/all() < span class = "hljs-comment" > # Or: < Sr> .agg(lambda < Sr> : < el> )< / span >
< Sr> = < Sr> .rank/diff/cumsum/ffill/interpl() < span class = "hljs-comment" > # Or: < Sr> .agg/transform(lambda < Sr> : < Sr> )< / span >
< Sr> = < Sr> .fillna(< el> ) < span class = "hljs-comment" > # Or: < Sr> .agg/transform/map(lambda < el> : < el> )< / span >
< / code > < / pre > < / div >
@ -2567,8 +2567,8 @@ y <span class="hljs-number">2</span>
┃ sr.apply(…) │ < span class = "hljs-number" > 3< / span > │ sum < span class = "hljs-number" > 3< / span > │ s < span class = "hljs-number" > 3< / span > ┃
┃ sr.agg(…) │ │ │ ┃
┗━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┛
< / code > < / pre >
< pre > < code class = "python hljs" > ┏━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┓
┏━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┓
┃ │ < span class = "hljs-string" > 'rank'< / span > │ [< span class = "hljs-string" > 'rank'< / span > ] │ {< span class = "hljs-string" > 'r'< / span > : < span class = "hljs-string" > 'rank'< / span > } ┃
┠─────────────────┼─────────────┼─────────────┼───────────────┨
┃ sr.apply(…) │ │ rank │ ┃
@ -2606,7 +2606,7 @@ b <span class="hljs-number">3</span> <span class="hljs-number">4</span>
< DF> = < DF> .sort_index(ascending=< span class = "hljs-keyword" > True< / span > ) < span class = "hljs-comment" > # Sorts rows by row keys.< / span >
< DF> = < DF> .sort_values(column_key/s) < span class = "hljs-comment" > # Sorts rows by the passed column/s.< / span >
< / code > < / pre >
< 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 > ])
< div > < h4 id = "dataframe mergejoinconcat" > DataFrame — 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 > ])
x y
a < span class = "hljs-number" > 1< / span > < span class = "hljs-number" > 2< / span >
b < span class = "hljs-number" > 3< / span > < span class = "hljs-number" > 4< / span >
@ -2646,13 +2646,13 @@ c <span class="hljs-number">6</span> <span class="hljs-number">7</span>
┃ │ c . < span class = "hljs-number" > 6< / span > < span class = "hljs-number" > 7< / span > │ │ │ R must be a DataFrame. ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━┛
< / code > < / pre >
< div > < h4 id = "aggregatetransformmap-1 " > Aggregate, Transform, Map:< / h4 > < pre > < code class = "python language-python hljs" > < Sr> = < DF> .sum/max/mean/idxmax/all() < span class = "hljs-comment" > # Or: < DF> .apply/agg(lambda < Sr> : < el> )< / span >
< div > < h4 id = "dataframe aggregatetransformmap" > DataFrame — Aggregate, Transform, Map:< / h4 > < pre > < code class = "python language-python hljs" > < Sr> = < DF> .sum/max/mean/idxmax/all() < span class = "hljs-comment" > # Or: < DF> .apply/agg(lambda < Sr> : < el> )< / span >
< DF> = < DF> .rank/diff/cumsum/ffill/interpl() < span class = "hljs-comment" > # Or: < DF> .apply/agg/transform(lambda < Sr> : < Sr> )< / span >
< DF> = < DF> .fillna(< el> ) < span class = "hljs-comment" > # Or: < DF> .applymap(lambda < el> : < el> )< / span >
< / code > < / pre > < / div >
< ul >
< 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. Transform passes DF to a function if it raises an error after receiving a Sr .< / strong > < / li >
< li > < strong > All operations operate on columns by default. Pass < code class = "python hljs" > < span class = "hljs-string" > 'axis=1'< / span > < / code > to process the rows instead.< / strong > < / li >
< / ul >
< pre > < code class = "python language-python hljs" > < span class = "hljs-meta" > > > > < / 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 > ])
x y
@ -2666,8 +2666,8 @@ b <span class="hljs-number">3</span> <span class="hljs-number">4</span>
┃ df.agg(…) │ x < span class = "hljs-number" > 4< / span > │ sum < span class = "hljs-number" > 4< / span > < span class = "hljs-number" > 6< / span > │ x < span class = "hljs-number" > 4< / span > ┃
┃ │ y < span class = "hljs-number" > 6< / span > │ │ ┃
┗━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┛
< / code > < / pre >
< pre > < code class = "python hljs" > ┏━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┓
┏━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━┓
┃ │ < span class = "hljs-string" > 'rank'< / span > │ [< span class = "hljs-string" > 'rank'< / span > ] │ {< span class = "hljs-string" > 'x'< / span > : < span class = "hljs-string" > 'rank'< / span > } ┃
┠─────────────────┼─────────────┼─────────────┼───────────────┨
┃ df.apply(…) │ x y │ x y │ x ┃
@ -2679,7 +2679,7 @@ b <span class="hljs-number">3</span> <span class="hljs-number">4</span>
< ul >
< li > < strong > Use < code class = "python hljs" > < span class = "hljs-string" > '< DF> [col_key_1, col_key_2][row_key]'< / span > < / code > to get the fifth result's values.< / strong > < / li >
< / ul >
< 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 > )
< div > < h4 id = "dataframe encodedecodeplot " > DataFrame — Encode, Decode, Plot :< / h4 > < pre > < code class = "python language-python hljs" > < DF> = pd.read_json/html(< span class = "hljs-string" > '< str/path/url> '< / span > )
< DF> = pd.read_csv/pickle/excel(< span class = "hljs-string" > '< path/url> '< / span > )
< DF> = pd.read_sql(< span class = "hljs-string" > '< table_name/query> '< / span > , < connection> )
< DF> = pd.read_clipboard()
@ -2690,6 +2690,9 @@ b <span class="hljs-number">3</span> <span class="hljs-number">4</span>
< DF> .to_pickle/excel(< path> )
< DF> .to_sql(< span class = "hljs-string" > '< table_name> '< / span > , < connection> )
< / code > < / pre >
< pre > < code class = "python language-python hljs" > < span class = "hljs-keyword" > import< / span > matplotlib.pyplot < span class = "hljs-keyword" > as< / span > plt
< DF> .plot.line/bar/hist/scatter([x=column_key, y=column_key/s]); plt.show()
< / code > < / pre >
< div > < h3 id = "groupby" > GroupBy< / h3 > < p > < strong > Object that groups together rows of a dataframe based on the value of the passed column.< / strong > < / p > < pre > < code class = "python language-python hljs" > < span class = "hljs-meta" > > > > < / 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 > , < span class = "hljs-number" > 5< / span > , < span class = "hljs-number" > 6< / span > ], [< span class = "hljs-number" > 7< / span > , < span class = "hljs-number" > 8< / span > , < span class = "hljs-number" > 6< / span > ]], index=list(< span class = "hljs-string" > 'abc'< / span > ), columns=list(< span class = "hljs-string" > 'xyz'< / span > ))
< span class = "hljs-meta" > > > > < / span > df.groupby(< span class = "hljs-string" > 'z'< / span > ).get_group(< span class = "hljs-number" > 6< / span > )
x y
@ -2699,11 +2702,10 @@ c <span class="hljs-number">7</span> <span class="hljs-number">8</span>
< 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 >
< DF> = < GB> .get_group(group_key/s) < span class = "hljs-comment" > # Selects a group by value of grouping column.< / span >
< DF> = < GB> .apply(< func> ) < span class = "hljs-comment" > # Maps each group. Func can return DF, Sr or el.< / span >
< GB> = < GB> [column_key] < span class = "hljs-comment" > # A single column GB. All operations return a Sr.< / span >
< / code > < / pre >
< div > < h4 id = "aggregatetransformmap-2 " > Aggregate, Transform, Map:< / h4 > < pre > < code class = "python language-python hljs" > < DF> = < GB> .sum/max/mean/idxmax/all() < span class = "hljs-comment" > # Or: < GB> .agg(lambda < Sr> : < el> )< / span >
< div > < h4 id = "groupby aggregatetransformmap" > GroupBy — Aggregate, Transform, Map:< / h4 > < pre > < code class = "python language-python hljs" > < DF> = < GB> .sum/max/mean/idxmax/all() < span class = "hljs-comment" > # Or: < GB> .agg(lambda < Sr> : < el> )< / span >
< DF> = < GB> .rank/diff/cumsum/ffill() < span class = "hljs-comment" > # Or: < GB> .transform(lambda < Sr> : < Sr> )< / span >
< DF> = < GB> .fillna(< el> ) < span class = "hljs-comment" > # Or: < GB> .transform(lambda < Sr> : < Sr> )< / span >
< / code > < / pre > < / div >
@ -2881,7 +2883,7 @@ $ pyinstaller script.py --add-data '<path>:.' <span class="hljs-comment">
< footer >
< aside > February 4 , 2022< / aside >
< aside > February 5 , 2022< / aside >
< a href = "https://gto76.github.io" rel = "author" > Jure Šorn< / a >
< / footer >