πŸΌΠŸΠ°Π½Π΄Ρ‹: Как ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ столбцу?

Для примСнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊ столбцу Π² pandas ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ apply(). Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это дСлаСтся:

import pandas as pd

# БоздаСм DataFrame с имСнСм df
df = pd.DataFrame({'столбСц': [1, 2, 3, 4, 5]})

# ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ
def ΡƒΠ΄Π²ΠΎΠΈΡ‚ΡŒ(число):
    return число * 2

# ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ столбцу 'столбСц' с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° apply()
df['столбСц'] = df['столбСц'].apply(ΡƒΠ΄Π²ΠΎΠΈΡ‚ΡŒ)

print(df)

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм DataFrame с ΠΎΠ΄Π½ΠΈΠΌ столбцом 'столбСц', содСрТащим числа. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ опрСдСляСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ 'ΡƒΠ΄Π²ΠΎΠΈΡ‚ΡŒ', которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠ΄Π²ΠΎΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. НаконСц, ΠΌΡ‹ примСняСм эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ столбцу 'столбСц' с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° apply() ΠΈ сохраняСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² столбСц 'столбСц'.

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

Как ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ столбцу Π² pandas

Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ pandas, для примСнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊ столбцу, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ apply(). Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ примСняСт Π·Π°Π΄Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту столбца ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ столбСц с ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ значСниями.

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

import pandas as pd

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ DataFrame
df = pd.DataFrame({'Π‘Ρ‚Ρ€Π°Π½Π°': ['Россия', 'БША', 'ΠšΠΈΡ‚Π°ΠΉ'],
                   'НасСлСниС': [144.5, 328.2, 1393.0]})

# ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊ столбцу
def convert_to_millions(number):
    return number / 1000

# ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ столбцу "НасСлСниС"
df['НасСлСниС (млн)'] = df['НасСлСниС'].apply(convert_to_millions)

# Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ DataFrame
print(df)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм DataFrame с двумя столбцами: "Π‘Ρ‚Ρ€Π°Π½Π°" ΠΈ "НасСлСниС". Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ опрСдСляСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ convert_to_millions, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ число ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ это число Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π½Π° 1000, Ρ‚Π΅ΠΌ самым прСобразуя Π΅Π³ΠΎ Π² ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ примСняСм эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ столбцу "НасСлСниС" с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° apply(). Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ примСнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сохраняСтся Π² Π½ΠΎΠ²ΠΎΠΌ столбцС "НасСлСниС (ΠΌΠ»Π½)".

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли ΠΌΡ‹ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ DataFrame, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ столбСц "НасСлСниС" Π±Ρ‹Π» ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹:

     Π‘Ρ‚Ρ€Π°Π½Π°  НасСлСниС  НасСлСниС (ΠΌΠ»Π½)
0   Россия      144.5            0.1445
1      БША      328.2            0.3282
2    ΠšΠΈΡ‚Π°ΠΉ     1393.0            1.3930

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, функция convert_to_millions Π±Ρ‹Π»Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π° ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту столбца "НасСлСниС" ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π±Ρ‹Π»ΠΈ сохранСны Π² Π½ΠΎΠ²ΠΎΠΌ столбцС "НасСлСниС (ΠΌΠ»Π½)".

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ столбцу, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π΅ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ apply() Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π±Π΅Π· опрСдСлСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

# ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sum ΠΊ столбцу "НасСлСниС"
df['Π‘ΡƒΠΌΠΌΠ°'] = df['НасСлСниС'].apply(sum)

# ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊ столбцу "НасСлСниС"
df['НасСлСниС (тыс)'] = df['НасСлСниС'].apply(lambda x: x * 1000)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ примСняСм Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sum ΠΊ столбцу "НасСлСниС" ΠΈ сохраняСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² столбцС "Π‘ΡƒΠΌΠΌΠ°". Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ примСняСм лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта столбца "НасСлСниС" Π½Π° 1000 ΠΈ сохраняСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² столбцС "НасСлСниС (тыс)".

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠ΅Ρ‚ΠΎΠ΄ apply() Π² pandas прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ примСнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊ столбцу ΠΈ прСобразования Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² DataFrame.

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

Pandas Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ β„–4. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со столбцами DataFrame

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

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ apply для трансформации ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ? | Аналитик Π΄Π°Π½Π½Ρ‹Ρ… | karpov.courses

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

Как ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ groupby Π² Pandas? 🧐✨

πŸΌΠŸΠ°Π½Π΄Ρ‹: Как ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ столбцу?