πŸ”‘ Как ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ строкС pandas: Π»Π΅Π³ΠΊΠΎ ΠΈ быстро

Для примСнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊ строкС Π² pandas, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ apply(). НапримСр, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ столбСц 'Π‘Ρ‚Ρ€ΠΎΠΊΠ°' Π² DataFrame, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ len() для подсчСта Π΄Π»ΠΈΠ½Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки:

        import pandas as pd
        
        df = pd.DataFrame({'Π‘Ρ‚Ρ€ΠΎΠΊΠ°': ['ΠΏΡ€ΠΈΠ²Π΅Ρ‚', 'ΠΏΠΎΠΊΠ°', 'здравствуйтС']})
        
        df['Π”Π»ΠΈΠ½Π°'] = df['Π‘Ρ‚Ρ€ΠΎΠΊΠ°'].apply(len)
        
        print(df)
    
Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ создаСм Π½ΠΎΠ²Ρ‹ΠΉ столбСц 'Π”Π»ΠΈΠ½Π°' ΠΈ примСняСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ len() ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС Π² столбцС 'Π‘Ρ‚Ρ€ΠΎΠΊΠ°'. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки:

        Π‘Ρ‚Ρ€ΠΎΠΊΠ°         Π”Π»ΠΈΠ½Π°
        0      ΠΏΡ€ΠΈΠ²Π΅Ρ‚        6
        1      ΠΏΠΎΠΊΠ°          4
        2      здравствуйтС  13
    

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ строкС pandas

Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ pandas, Π΅ΡΡ‚ΡŒ нСсколько способов ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ строкС Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ°. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ рассмотрим Π΄Π²Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных способа: использованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° apply() ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° map().

ΠœΠ΅Ρ‚ΠΎΠ΄ apply()

ΠœΠ΅Ρ‚ΠΎΠ΄ apply() позволяСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ° ΠΈΠ»ΠΈ ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ столбцу.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, создадим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ…:


import pandas as pd

data = {'Name': ['John', 'Kate', 'Sam', 'Emma'],
        'Age': [25, 30, 35, 28]}
df = pd.DataFrame(data)
print(df)

Π’Ρ‹Π²ΠΎΠ΄:

Name  Age
0  John   25
1  Kate   30
2   Sam   35
3  Emma   28

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ len() ΠΊ столбцу 'Name', ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:


df['Name_Length'] = df['Name'].apply(len)
print(df)

Π’Ρ‹Π²ΠΎΠ΄:

Name  Age  Name_Length
0  John   25            4
1  Kate   30            4
2   Sam   35            3
3  Emma   28            4

ΠœΡ‹ создали Π½ΠΎΠ²Ρ‹ΠΉ столбСц 'Name_Length', Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится количСство символов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС столбца 'Name'.

Π’Π°ΠΊΠΆΠ΅, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π΅ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ°. НапримСр, Π²ΠΎΡ‚ функция, которая ΡƒΠ΄Π²Π°ΠΈΠ²Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ столбца 'Age':


def double_age(age):
    return age * 2

df['Double_Age'] = df['Age'].apply(double_age)
print(df)

Π’Ρ‹Π²ΠΎΠ΄:

Name  Age  Name_Length  Double_Age
0  John   25            4          50
1  Kate   30            4          60
2   Sam   35            3          70
3  Emma   28            4          56

ΠœΡ‹ создали Π½ΠΎΠ²Ρ‹ΠΉ столбСц 'Double_Age', содСрТащий ΡƒΠ΄Π²ΠΎΠ΅Π½Π½Ρ‹Π΅ значСния столбца 'Age'.

ΠœΠ΅Ρ‚ΠΎΠ΄ map()

ΠœΠ΅Ρ‚ΠΎΠ΄ map() позволяСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ столбца Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ°.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


data = {'Grade': ['A', 'B', 'C', 'A']}
df = pd.DataFrame(data)
print(df)

Π’Ρ‹Π²ΠΎΠ΄:

  Grade
0     A
1     B
2     C
3     A

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ значСния столбца 'Grade' ΠΈΠ· Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Ρ… Π² числСнныС. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ map() ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Π΅ значСния Π½Π° числовыС:


grade_map = {'A': 5, 'B': 4, 'C': 3, 'D': 2, 'F': 1}
df['Numeric_Grade'] = df['Grade'].map(grade_map)
print(df)

Π’Ρ‹Π²ΠΎΠ΄:

  Grade  Numeric_Grade
0     A              5
1     B              4
2     C              3
3     A              5

ΠœΡ‹ создали Π½ΠΎΠ²Ρ‹ΠΉ столбСц 'Numeric_Grade', Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π±ΡƒΠΊΠ²Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ числовым согласно ΡΠ»ΠΎΠ²Π°Ρ€ΡŽ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли Π΄Π²Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных способа примСнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊ строкам pandas - ΠΌΠ΅Ρ‚ΠΎΠ΄ apply() ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ map(). ΠœΠ΅Ρ‚ΠΎΠ΄ apply() позволяСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ° ΠΈΠ»ΠΈ ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ столбцу, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ map() примСняСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ столбца. Оба ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ Π² Ρ€Π°Π·Π½Ρ‹Ρ… сцСнариях ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² pandas.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

ΠœΠ΅Ρ‚ΠΎΠ΄ apply ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Series. Анализ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Pandas

Как ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² SQL ΠΈ Pandas | Анатолий ΠšΠ°Ρ€ΠΏΠΎΠ² | karpov.courses

β–Ί 9. Π€Π˜Π›Π¬Π’Π ΠΠ¦Π˜Π― ДАННЫΠ₯ ΠΏΠΎ логичСскому ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ | ΠšΡƒΡ€Ρ ΠΏΠΎ Pandas.

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”‘ Как ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ строкС pandas: Π»Π΅Π³ΠΊΠΎ ΠΈ быстро