🐼 Как ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡ: простыС способы для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с pandas

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡ Π² pandas, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ reset_index().


import pandas as pd

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ DataFrame с ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ
data = {'Π“ΠΎΡ€ΠΎΠ΄Π°': ['Москва', 'Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³', 'Новосибирск'],
        'Π―Π·Ρ‹ΠΊ': ['Русский', 'Русский', 'Русский'],
        'НасСлСниС': [12678079, 5398064, 1625631]}

df = pd.DataFrame(data)
df.set_index(['Π“ΠΎΡ€ΠΎΠ΄Π°', 'Π―Π·Ρ‹ΠΊ'], inplace=True)

# Π£Π±ΠΈΡ€Π°Π΅ΠΌ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡ
df.reset_index(inplace=True)

ПослС примСнСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π° reset_index() ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½, ΠΈ DataFrame Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ простой числовой индСкс.

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

pandas: ΠΊΠ°ΠΊ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡ

МногиС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ pandas для манипулирования ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ…. Π’ pandas Π΅ΡΡ‚ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… с использованиСм ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ². Однако, Π΅ΡΡ‚ΡŒ ситуации, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΡ‹ Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ индСксы. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ°

Для удалСния ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° Π² pandas ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ reset_index(). Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ DataFrame Π² DataFrame с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ индСксом. ΠŸΡ€ΠΈ этом всС ΡƒΡ€ΠΎΠ²Π½ΠΈ индСкса станут столбцами. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


import pandas as pd

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ DataFrame
data = {'A': [1, 2, 3],
        'B': [4, 5, 6]}
index = pd.MultiIndex.from_tuples([('a', 'x'), ('a', 'y'), ('b', 'z')], names=['Index_1', 'Index_2'])
df = pd.DataFrame(data, index=index)

# Π’Ρ‹Π²ΠΎΠ΄ исходного DataFrame
print("Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ DataFrame:")
print(df)

# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ°
df_reset = df.reset_index()

# Π’Ρ‹Π²ΠΎΠ΄ DataFrame послС удалСния ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ°
print("DataFrame послС удалСния ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ°:")
print(df_reset)
  

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ DataFrame с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ pd.MultiIndex.from_tuples(). Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ использовали ΠΌΠ΅Ρ‚ΠΎΠ΄ reset_index(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² DataFrame с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ индСксом. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выводится Π½Π° экран.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° Π² Π²ΠΈΠ΄Π΅ столбцов

Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… столбцах, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ reset_index() с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ drop=True. Π’ этом случаС ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½, Π° значСния индСкса Π±ΡƒΠ΄ΡƒΡ‚ сохранСны Π² столбцы. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


import pandas as pd

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ DataFrame
data = {'A': [1, 2, 3],
        'B': [4, 5, 6]}
index = pd.MultiIndex.from_tuples([('a', 'x'), ('a', 'y'), ('b', 'z')], names=['Index_1', 'Index_2'])
df = pd.DataFrame(data, index=index)

# Π’Ρ‹Π²ΠΎΠ΄ исходного DataFrame
print("Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ DataFrame:")
print(df)

# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ сохранСниС Π΅Π³ΠΎ Π² Π²ΠΈΠ΄Π΅ столбцов
df_reset = df.reset_index(drop=True)

# Π’Ρ‹Π²ΠΎΠ΄ DataFrame со значСниями ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° Π² Π²ΠΈΠ΄Π΅ столбцов
print("DataFrame со значСниями ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° Π² Π²ΠΈΠ΄Π΅ столбцов:")
print(df_reset)
  

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ использовали ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ drop=True Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ reset_index(). Π­Ρ‚ΠΎ позволяСт ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния индСкса Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… столбцах. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ выводятся Π½Π° экран.

ИзмСнСниС ΠΈΠΌΠ΅Π½ΠΈ столбца ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ°

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ столбСц, содСрТащий значСния ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ°, Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ имя 'level_0', 'level_1' ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это имя, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ col_level Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ reset_index(). ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


import pandas as pd

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ DataFrame
data = {'A': [1, 2, 3],
        'B': [4, 5, 6]}
index = pd.MultiIndex.from_tuples([('a', 'x'), ('a', 'y'), ('b', 'z')], names=['Index_1', 'Index_2'])
df = pd.DataFrame(data, index=index)

# Π’Ρ‹Π²ΠΎΠ΄ исходного DataFrame
print("Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ DataFrame:")
print(df)

# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ столбца
df_reset = df.reset_index(col_level=1)

# Π’Ρ‹Π²ΠΎΠ΄ DataFrame послС удалСния ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ измСнСния ΠΈΠΌΠ΅Π½ΠΈ столбца
print("DataFrame послС удалСния ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ измСнСния ΠΈΠΌΠ΅Π½ΠΈ столбца:")
print(df_reset)  
  

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ использовали Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ col_level=1 Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ reset_index() для измСнСния ΠΈΠΌΠ΅Π½ΠΈ столбца, содСрТащСго значСния ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ°. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ выводятся Π½Π° экран.

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

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли, ΠΊΠ°ΠΊ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡ Π² pandas. ΠœΡ‹ использовали ΠΌΠ΅Ρ‚ΠΎΠ΄ reset_index() для прСобразования ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ DataFrame Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ индСкс. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ рассмотрСли, ΠΊΠ°ΠΊ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ° Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… столбцах ΠΈ ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ имя столбца, содСрТащСго значСния ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ°. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ Π² pandas ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎ своСму ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ.

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

β–Ί 6. ΠœΠ£Π›Π¬Π’Π˜Π˜ΠΠ”Π•ΠšΠ‘ | ΠšΡƒΡ€Ρ ΠΏΠΎ Pandas.

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… Π² Pandas | Анатолий ΠšΠ°Ρ€ΠΏΠΎΠ² | karpov.courses

Π”Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΡ‹ pandas. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строк

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

🐼 ОбновлСниС pandas: Π³Π΄Π΅ ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

🐼 Как ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΈΠ½Π΄Π΅ΠΊΡ: простыС способы для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с pandas