πŸ” Как ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ pandas: совСты ΠΈ практичСскоС руководство

Для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Π² Pandas Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ iteritems() для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΏΠ°Ρ€ "имя ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ - сСрия Π΄Π°Π½Π½Ρ‹Ρ…". Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

import pandas as pd

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ DataFrame
df = pd.DataFrame({'Имя': ['Анна', 'ΠœΠ°Ρ€ΠΈΡ', 'Иван'],
                   'Возраст': [25, 30, 28],
                   'Π“ΠΎΡ€ΠΎΠ΄': ['Москва', 'Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³', 'Казань']})

# ΠŸΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ
for column_name, column_data in df.iteritems():
    print(f"Имя колонки: {column_name}")
    print(f"Π”Π°Π½Π½Ρ‹Π΅: {column_data}\n")

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, каТдая итСрация Ρ†ΠΈΠΊΠ»Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ имя ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ этой ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ свои Π½ΡƒΠΆΠ΄Ρ‹.

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

Как ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² Pandas

Pandas - это мощная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² Python, которая прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ инструмСнты для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ рядами. Когда Ρƒ вас Π΅ΡΡ‚ΡŒ большой Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ для выполнСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ….

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим нСсколько способов, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² Pandas ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° Π½ΠΈΡ….

1. ИспользованиС Ρ†ΠΈΠΊΠ»Π° for

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² Pandas - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» for. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ columns для получСния списка ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Π² вашСм Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ΅, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎ.


import pandas as pd

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ
df = pd.DataFrame({'A': [1, 2, 3],
                   'B': [4, 5, 6],
                   'C': [7, 8, 9]})

# ΠŸΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΈΡ… сумму
for column in df.columns:
    column_sum = df[column].sum()
    print(f"Π‘ΡƒΠΌΠΌΠ° {column}: {column_sum}")

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ df с трСмя ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ A, B ΠΈ C. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ использовали Ρ†ΠΈΠΊΠ» for, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΈΡ… сумму.

Π’Ρ‹Π²ΠΎΠ΄:

Π‘ΡƒΠΌΠΌΠ° A: 6
Π‘ΡƒΠΌΠΌΠ° B: 15
Π‘ΡƒΠΌΠΌΠ° C: 24

2. ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° apply

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ apply. Он позволяСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅.


import pandas as pd

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ
df = pd.DataFrame({'A': [1, 2, 3],
                   'B': [4, 5, 6],
                   'C': [7, 8, 9]})

# ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для примСнСния
def square_sum(x):
    return (x ** 2).sum()

# ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅
result = df.apply(square_sum)
print(result)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ df Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ square_sum, которая Π²ΠΎΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ ΠΈ вычисляСт ΠΈΡ… сумму. ΠœΡ‹ примСняСм эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° apply.

Π’Ρ‹Π²ΠΎΠ΄:

A    14
B    35
C    66
dtype: int64

3. ИспользованиС Ρ†ΠΈΠΊΠ»Π° for с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ iteritems

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ°ΠΊ ΠΏΠΎ значСниям, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ названиям ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ iteritems вмСстС с Ρ†ΠΈΠΊΠ»ΠΎΠΌ for. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ, содСрТащиС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈ Π΅Π΅ значСния.


import pandas as pd

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ
df = pd.DataFrame({'A': [1, 2, 3],
                   'B': [4, 5, 6],
                   'C': [7, 8, 9]})

# ΠŸΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈ ΠΈΡ… значСния
for column, values in df.iteritems():
    print(f"{column}: {values.tolist()}")

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ df Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ использовали Ρ†ΠΈΠΊΠ» for с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ iteritems, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ ΠΈ Π΅Π΅ значСния. ΠœΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈ Π΅Π΅ значСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° tolist() для прСобразования Π² список.

Π’Ρ‹Π²ΠΎΠ΄:

A: [1, 2, 3]
B: [4, 5, 6]
C: [7, 8, 9]

4. ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° iterrows

Если Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½Ρ‹ индСксы строк вмСстС с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ iterrows. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠ°Ρ€Ρ‹, содСрТащиС индСкс строки ΠΈ значСния для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ.


import pandas as pd

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ
df = pd.DataFrame({'A': [1, 2, 3],
                   'B': [4, 5, 6],
                   'C': [7, 8, 9]})

# ΠŸΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, индСксы строк ΠΈ ΠΈΡ… значСния
for index, row in df.iterrows():
    print(f"ИндСкс: {index}, ЗначСния: {row.tolist()}")

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ df. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ использовали ΠΌΠ΅Ρ‚ΠΎΠ΄ iterrows, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ, индСксы строк ΠΈ ΠΈΡ… значСния. ΠœΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ индСкс строки ΠΈ Π΅Π³ΠΎ значСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° tolist() для прСобразования Π² список.

Π’Ρ‹Π²ΠΎΠ΄:

ИндСкс: 0, ЗначСния: [1, 4, 7]
ИндСкс: 1, ЗначСния: [2, 5, 8]
ИндСкс: 2, ЗначСния: [3, 6, 9]

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

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли нСсколько способов ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² Pandas ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π½ΠΈΠΌΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» for для простых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΌΠ΅Ρ‚ΠΎΠ΄ apply для Π±ΠΎΠ»Π΅Π΅ слоТных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ iteritems ΠΈ iterrows для получСния ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠΎ названиям ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΈ индСксам строк соотвСтствСнно.

НадСюсь, эта информация Π±Ρ‹Π»Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² Pandas ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊ вашим Π΄Π°Π½Π½Ρ‹ΠΌ.

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

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

Pandas - Ρ€Π°Π·Π±ΠΎΡ€ всСх основных возмоТностСй Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ датасСтС

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

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

πŸ”— Как ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π° столбца Π² ΠΎΠ΄ΠΈΠ½ pandas? ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…!

πŸ” Как ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ pandas: совСты ΠΈ практичСскоС руководство