Π Π°Π±ΠΎΡΠ° Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΠΎ-Π½ΠΎΠ²ΠΎΠΌΡ: Pandas Π²ΠΌΠ΅ΡΡΠΎ SQL
Π‘ΡΠ°ΡΡΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ SQL-Π·Π°ΠΏΡΠΎΡΡ Π΄Π»Ρ Pandas ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ .
Π Π°Π½ΡΡΠ΅ SQL ΠΊΠ°ΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π±ΡΠ»ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°: Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΡΡΡΠ° ΠΏΠΎ Π½ΠΈΠΌ.
Π‘Π΅ΠΉΡΠ°Ρ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΡ ΡΠΎΡΠΌ ΠΈ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ΄ Π½ΠΈΠΌΠΈ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡ Β«ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Β». ΠΡΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ CSV-ΡΠ°ΠΉΠ»Ρ, ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅ΠΊΡΡ, Parquet, HDF5 ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. ΠΠ΄Π΅ΡΡ Π²Π°ΠΌ ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Pandas.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Pandas?
Pandas β ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ Python, ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠΌΠ΅Π΅Ρ ΠΎΡΠΊΡΡΡΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Anaconda. ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ (ΡΠ°Π±Π»ΠΈΡΠ½ΡΡ ) Π΄Π°Π½Π½ΡΡ . ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. Pandas ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
SQL β Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΡΠ·ΡΠΊ. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ Π²ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ Π·Π°ΠΏΡΠΎΡ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Pandas ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ SQL. ΠΠ΄Π΅ΡΡ Π²Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊ Π½Π°Π±ΠΎΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΠ΅ ΠΈΡ Π² ΡΠ΅ΠΏΠΎΡΠΊΡ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
Π Π°Π·Π±ΠΎΡ SQL-Π·Π°ΠΏΡΠΎΡΠ°
SQL-Π·Π°ΠΏΡΠΎΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ². ΠΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ. ΠΡΠΈΠΌΠ΅Ρ ΠΊΠ°ΡΠΊΠ°ΡΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ² Π±Π΅Π· ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠΈΠΊΠΈ:
SELECTβ¦ FROMβ¦ WHEREβ¦GROUP BYβ¦ HAVINGβ¦ORDER BYβ¦LIMITβ¦ OFFSETβ¦
ΠΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ ΡΡΠΈ ΡΠ°ΠΌΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅. Π§ΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Pandas, Π½ΡΠΆΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅:
Π‘ΠΊΠ°ΡΠ°ΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π΄Π΅ΡΡ.
SELECT, WHERE, DISTINCT, LIMIT
ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ SELECT. ΠΠ΅Π½ΡΠΆΠ½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΎΡΡΠ΅ΠΊΠ°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ LIMIT ΠΈ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²ΡΠ²Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ WHERE. ΠΠ»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ DISTINCT.
SELECT ΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π²ΡΠ±ΠΎΡΠ° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° &. ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΡΠΎΠ»Π±ΡΠΎΠ² ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠ°ΡΠ΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ
ΡΠΊΠΎΠ±ΠΎΠΊ.
ORDER BY
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Pandas ΡΠΎΡΡΠΈΡΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ. ΠΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ascending=False.
IN ΠΈ NOT IN
Π§ΡΠΎΠ±Ρ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ Π½Π΅ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π° ΡΠ΅Π»ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ IN. Π Pandas ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ .isin() ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅. Π§ΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π»ΡΠ±ΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ~ (ΡΠΈΠ»ΡΠ΄Π°).
GROUP BY, COUNT, ORDER BY
ΠΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° .groupby(). ΠΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΎΠΉ COUNT Π² SQL ΠΈ Pandas. Π Pandas .count() Π²Π΅ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ non-null/NaN. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΊΠ°ΠΊ Π² SQL, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ .size().
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΏΠΎΠ»ΡΠΌ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Pandas ΡΠΎΡΡΠΈΡΡΠ΅Ρ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈ ΡΠΎΠΌΡ ΠΆΠ΅ ΡΠΏΠΈΡΠΊΡ ΠΏΠΎΠ»Π΅ΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² .sort_values(). ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΠ»Ρ Π΄Π»Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ DESC Π²ΠΌΠ΅ΡΡΠΎ ASC, ΠΊΠ°ΠΊ Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π²ΡΠ±ΠΎΡΠΊΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠ²Π½ΠΎ:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ .to_frame() ΠΈ .reset_index() ΠΎΠ±ΡΡΠ»Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ»Ρ (size). ΠΡΠΎ ΠΏΠΎΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ°ΡΡΡΡ ΡΠΈΠΏΠ° DataFrame. ΠΠΎΡΠ»Π΅ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ Π² Pandas Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠΏ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ GroupByObject. ΠΠΎΡΡΠΎΠΌΡ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² DataFrame. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ .reset_index() ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ ΡΡΡΠΎΠΊ Π΄Π»Ρ ΡΡΠ΅ΠΉΠΌΠ° Π΄Π°Π½Π½ΡΡ
.
HAVING
Π SQL ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ HAVING. Π Pandas ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ .filter() ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ Python (ΠΈΠ»ΠΈ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅), ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ True, Π΅ΡΠ»ΠΈ Π³ΡΡΠΏΠΏΠ° Π΄Π°Π½Π½ΡΡ
Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΠ΅ΡΠ²ΡΠ΅ N Π·Π°ΠΏΠΈΡΠ΅ΠΉ
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΡΠ΄Π΅Π»Π°Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΡΠ΅ΠΉΠΌ Π΄Π°Π½Π½ΡΡ
Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ by_country, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΡΠΎΠΏΠΎΡΡΠΎΠ² Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠ°Π½Π΅:
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ airport_count ΠΈ Π²ΡΠ±Π΅ΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΡΠ΅ 10 ΡΡΡΠ°Π½ Ρ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π°ΡΡΠΎΠΏΠΎΡΡΠΎΠ². ΠΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ β Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ Β«ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ 10Β» ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΡΡ
10 Π·Π°ΠΏΠΈΡΠ΅ΠΉ:
ΠΠ³ΡΠ΅Π³Π°ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ: MIN, MAX, MEAN
Π£ΡΠΈΡΡΠ²Π°Ρ ΡΡΠ΅ΠΉΠΌ Π΄Π°Π½Π½ΡΡ Π²ΡΡΠ΅ (Π΄Π°Π½Π½ΡΠ΅ Π²Π·Π»ΡΡΠ½ΠΎ-ΠΏΠΎΡΠ°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΏΠΎΠ»ΠΎΡΡ), ΡΠ°ΡΡΡΠΈΡΠ°Π΅ΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΠΈ ΡΡΠ΅Π΄Π½ΡΡ Π΄Π»ΠΈΠ½Ρ ΠΠΠ.
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ Ρ SQL-Π·Π°ΠΏΡΠΎΡΠΎΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΡΠΎΠ»Π±ΡΡ. ΠΠΎ Π² Pandas Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ.
Π€ΡΠ΅ΠΉΠΌ Π΄Π°Π½Π½ΡΡ
ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΡΠ°Π½ΡΠΏΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ .T, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΎΠ»Π±ΡΡ.
JOIN
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ .merge(), ΡΡΠΎΠ±Ρ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΡΡΠ΅ΠΉΠΌΡ Π΄Π°Π½Π½ΡΡ
Π² Pandas. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊ ΠΊΠ°ΠΊΠΈΠΌ ΡΡΠΎΠ»Π±ΡΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡΡ (left_on ΠΈ right_on), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΠΏ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ: inner (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ), left (ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ LEFT OUTER Π² SQL), right (RIGHT OUTER Π² SQL) ΠΈΠ»ΠΈ outer (FULL OUTER Π² SQL).
UNION ALL ΠΈ UNION
pd.concat() β ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ UNION ALL Π² SQL.
ΠΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠΎΠΌ UNION (Π΄Π΅Π΄ΡΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ) ΡΠ²Π»ΡΠ΅ΡΡΡ .drop_duplicates().
INSERT
ΠΠΎΠΊΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ±ΠΎΡΠΊΠ°, Π½ΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ. Π Pandas Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΡΠΆΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
Π½Π΅Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ° INSERT Π² SQL. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠ΅ΠΉΠΌ Π΄Π°Π½Π½ΡΡ
, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π½ΠΎΠ²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΄Π²Π° ΡΡΠ΅ΠΉΠΌΠ°.
UPDATE
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π²Π΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΡΡΠ΅ΠΉΠΌΠ΅.
DELETE
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π°Π»ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΡΠ΅ΠΉΠΌΠ° Π² Pandas β ΡΡΠΎ ΡΠ°Π·Π±ΠΈΡΡ ΡΡΠ΅ΠΉΠΌ Π½Π° ΡΡΡΠΎΠΊΠΈ. ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΡΡΡΠΎΠΊ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ
Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ .drop().
ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡΡ
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π² Pandas Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ inplace=True, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΡΡΠ΅ΠΉΠΌΠΎΠΌ Π΄Π°Π½Π½ΡΡ
Π²ΠΌΠ΅ΡΡΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡ ΡΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ±ΡΠΎΡΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π° ΠΌΠ΅ΡΡΠ΅:
ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ .loc (Π²ΡΡΠ΅ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ UPDATE) ΠΏΡΠΎΡΡΠΎ Π½Π°Ρ
ΠΎΠ΄ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π΄Π»Ρ ΠΈΡ
ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ΅Π½ΡΡΡΡΡ Π½Π° ΠΌΠ΅ΡΡΠ΅. Π’Π°ΠΊΠΆΠ΅, Π΅ΡΠ»ΠΈ Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΡΠΎΠ»Π±ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ (df['url'] = 'http://google.com') ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΡΡΠΎΠ»Π±Π΅Ρ (df['total_cost'] = df['price'] * df['quantity']), ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡ Π½Π° ΠΌΠ΅ΡΡΠ΅.
Pandas β ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠ². Π‘ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΊΡΠΏΠΎΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΠΌΠ°ΡΠΎΠ²
Π‘ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΎΠ²
ΠΠΎΠ»ΡΡΠΈΠΌ:
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°ΠΌΠΈ
ΠΡΡΡΠ΅Π΅ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² Pandas, Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΈ ΡΠΎΠΌΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ β Jupyter notebook. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΡΠ΄ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΠΆΠ΅ΠΉΠΊ ΠΠ°Π½Π΄Π΅ΡΠΏΠ»Π°Ρ) ΠΏΡΠ±Π»ΠΈΠΊΡΡΡ ΡΠ°ΠΌ Π΄Π°ΠΆΠ΅ ΡΠ΅Π»ΡΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ. ΠΠΎΠ²ΡΡ Π·Π°ΠΏΠΈΡΡ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎ:
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅:
- ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ localhost:8888;
- Π½Π°ΠΆΠ°ΡΡ Β«NewΒ» ΠΈ Π΄Π°ΡΡ ΠΈΠΌΡ Π²Π°ΡΠ΅ΠΌΡ Π±Π»ΠΎΠΊΠ½ΠΎΡΡ;
- Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅;
- ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ GitHub ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ΄Π° ΡΠ²ΠΎΠΉ Π±Π»ΠΎΠΊΠ½ΠΎΡ (ΡΠ°ΠΉΠ» Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ
.ipynb).
Π£ GitHub Π΅ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΏΡΠΎΡΠΌΠΎΡΡΡΠΈΠΊ Π΄Π»Ρ Π±Π»ΠΎΠΊΠ½ΠΎΡΠΎΠ² Jupyter Ρ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ Markdown.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ Π½Π° ΡΡΠ°ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π°ΡΠΈΡ ΡΠΏΠ°ΡΠ³Π°Π»ΠΎΠΊ ΠΏΠΎ Python. ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΏΠΎΠ΄Π±ΠΎΡΠΊΠ° ΠΊΠ½ΠΈΠ³ ΠΏΠΎ SQL.