nikita.kopot 25 дСкабря 2021

🐼 Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Pandas

Из этой Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΡ‹ Pandas ΠΏΠΎ нСскольким столбцам с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° sort_values, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎ индСксам ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ sort_index.
🐼 Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Pandas

Π”Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ – это двумСрная структура Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΡ‡Π΅Π½ΡŒ похоТая Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, которая состоит ΠΈΠ· рядов ΠΈ столбцов. Π’ Pandas ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ столбцу, Π»ΠΈΠ±ΠΎ ΠΏΠΎ нСскольким столбцам.

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Kaggle, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ со статистикой Ρ‚Ρ€Π΅Π½Π΄ΠΎΠ²Ρ‹Ρ… Π²ΠΈΠ΄Π΅ΠΎΡ€ΠΎΠ»ΠΈΠΊΠΎΠ² YouTube. Π‘ΠΊΠ°Ρ‡Π°Π΅ΠΌ ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ»USvideos.csv:

        df = pd.read_csv('USvideos.csv')
df.columns
    

Π”Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ столбцы:

🐼 Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Pandas

ΠœΠ΅Ρ‚ΠΎΠ΄ sort_values примСняСтся для сортировки Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ° ΠΈ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

        DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None)
    

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, Π·Π° Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ столбцу

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ столбцу, ΡƒΠΊΠ°ΠΆΠ΅ΠΌ имя столбца с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° by. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° возьмСм столбСц likes, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ количСство Π½Π°Π±Ρ€Π°Π½Π½Ρ‹Ρ… Π»Π°ΠΉΠΊΠΎΠ².

        df.sort_values(by='likes', ascending=False)
    

Π—Π΄Π΅ΡΡŒ:

by – опрСдСляСт список столбцов для сортировки.

ascending – Π·Π°Π΄Π°Π΅Ρ‚ порядок сортировки.

sort_values ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ сортируСт ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ порядок Β«ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽΒ», слСдуСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ascending=False.

🐼 Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Pandas

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ нСскольким столбцам

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ ΠΏΠΎ нСскольким столбцам, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ sort_values Π½ΡƒΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° столбцов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ собираСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ отсортируСм Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ ΠΏΠΎ показатСлям likes ΠΈ dislikes, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π°ΠΉΠ΄Π΅ΠΌ Π²ΠΈΠ΄Π΅ΠΎ с наибольшим числом Π»Π°ΠΉΠΊΠΎΠ² ΠΈ Π΄ΠΈΠ·Π»Π°ΠΉΠΊΠΎΠ².

Π’ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ ascending порядок сортировки для столбцов Ρ‚Π°ΠΊΠΆΠ΅ указываСтся Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ, Ρ‡Ρ‚ΠΎ позволяСт Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΉ порядок сортировки для Ρ€Π°Π·Π½Ρ‹Ρ… столбцов Π² Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ΅.

        df.sort_values(['likes','dislikes'], ascending=[False, False])
    

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΏΡ€ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ kind позволяСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сортировки: quicksort (Быстрая сортировка), mergesort (Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° слияниСм) ΠΈΠ»ΠΈ heapsort (ΠŸΠΈΡ€Π°ΠΌΠΈΠ΄Π°Π»ΡŒΠ½Π°Ρ сортировка). По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ quicksort.

        df.sort_values('likes', ascending=False, kind="mergesort")
    

Inplace-сортировка (Π½Π° мСстС) ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π°. Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ inplace-сортировки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ inplace:

        df.sort_values('likes', ascending=False, kind="mergesort", inplace=True)
    

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° key ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π΅Ρ‰Π΅ Π΄ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сортировки. ВмСсто Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ lambda-функция.

        df.sort_values(by='title', key=lambda x: x.str.lower())
    

ΠœΠ΅Ρ‚ΠΎΠ΄ sort_index сортируСт Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ ΠΏΠΎ индСксам строк. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π· взглянСм Π½Π° наш Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ:

        sdf = df.sort_values(by='likes', ascending=False)
    
🐼 Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Pandas

Когда ΠΌΡ‹ сортируСм Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ sort_values, Pandas ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ столбСц, отвСтствСнный Π·Π° сортировку. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ sdf ΠΏΠΎ индСксу строк, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ sort_index:

        sdf.sort_index()
    
🐼 Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Pandas

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌ столбцов, присвоим ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ axis Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1:

        sdf.sort_index(axis=1)
    
🐼 Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Pandas
***

Π’ этой Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ΅ ΠΌΡ‹:

  • Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈ нСскольким значСниям;
  • ΡƒΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ sort_values() ΠΈ sort_index().

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ

ΠœΠ•Π ΠžΠŸΠ Π˜Π―Π’Π˜Π―

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Π’ΠΠšΠΠΠ‘Π˜Π˜

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ вакансию

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•