Как заменить значения в столбце с помощью Python Pandas?

Библиотека Pandas является одной из ключевых библиотек в экосистеме Python для анализа данных. Она предоставляет мощные средства для работы с таблицами данных (DataFrames), чтения и записи данных в различных форматах, обработки и манипулирования данными.

Одной из распространённых задач в анализе данных является замена значений в столбцах, будь то приведение данных к единому формату, исправление ошибок или обновление данных по новому источнику. В этой статье мы рассмотрим основные методы замены значений в столбцах с помощью библиотеки Pandas.

Установка и импорт Pandas

Перед началом работы с Pandas, необходимо установить эту библиотеку. Команда для установки через пакетный менеджер pip выглядит следующим образом:

pip install pandas

После установки библиотеки, её необходимо импортировать в ваш Python-скрипт. Импорт Pandas обычно выглядит так:

import pandas as pd

Создание DataFrame для примера

DataFrame — это основная структура данных в Pandas, представляющая собой таблицу с метками строк и столбцов. Создадим пример DataFrame, чтобы продемонстрировать методы замены значений:

import pandas as pd

# Создадим DataFrame
data = {
    'Имя': ['Алексей', 'Марина', 'Сергей', 'Дмитрий'],
    'Возраст': [25, 30, 27, 32],
    'Город': ['Москва', 'Санкт-Петербург', 'Москва', 'Дмитров']
}
df = pd.DataFrame(data)

print(df)

Вывод будет следующим:

        Имя   Возраст            Город
0    Алексей       25            Москва
1     Марина       30  Санкт-Петербург
2     Сергей       27            Москва
3    Дмитрий       32           Дмитров

Замена значений в столбце

Использование метода replace()

Метод replace() позволяет заменить значения в DataFrame или отдельном столбце. Рассмотрим пример замены ‘Москва’ на ‘Moscow’:

# Замена значений в столбце 'Город'
df['Город'] = df['Город'].replace('Москва', 'Moscow')

print(df)

Вывод будет следующим:

        Имя   Возраст            Город
0    Алексей       25           Moscow
1     Марина       30  Санкт-Петербург
2     Сергей       27           Moscow
3    Дмитрий       32           Дмитров

Использование метода loc[]

Метод loc[] позволяет заменять значения по определённым условиям. С его помощью можно, например, заменить все значения в столбце ‘Возраст’, которые равны 27, на 28:

# Замена значений с использованием loc[]
df.loc[df['Возраст'] == 27, 'Возраст'] = 28

print(df)

Вывод будет следующим:

        Имя   Возраст            Город
0    Алексей       25           Moscow
1     Марина       30  Санкт-Петербург
2     Сергей       28           Moscow
3    Дмитрий       32           Дмитров

Использование метода mask()

Метод mask() работает аналогично методу loc[], но позволяет заменять значения, которые удовлетворяют определенному условию. Заменим значения в столбце ‘Город’, содержащие ‘Москва’, на ‘Moscow’:

# Замена значений с использованием mask()
df['Город'] = df['Город'].mask(df['Город'] == 'Дмитров', 'Dmitrov')

print(df)

Вывод будет следующим:

        Имя   Возраст            Город
0    Алексей       25           Moscow
1     Марина       30  Санкт-Петербург
2     Сергей       28           Moscow
3    Дмитрий       32           Dmitrov

Примеры применения на реальных данных

В реальных задачах анализа данных замена значений находит широкое применение. Рассмотрим пример использования замены значений в контексте дата-анализа. Допустим, у нас есть DataFrame с данными о рекламных кампаниях, и мы хотим классифицировать старые и новые кампании:

# Пример данных о рекламных кампаниях
data_campaigns = {
    "Кампания": ["К001", "К002", "К003", "К004"],
    "Дата_начала": ["2021-01-01", "2020-06-15", "2019-12-01", "2022-03-10"],
}
df_campaigns = pd.DataFrame(data_campaigns)

# Сортировка и классификация
df_campaigns["Тип"] = df_campaigns["Дата_начала"].apply(
    lambda x: "Старая" if x < "2021-01-01" else "Новая"
)

print(df_campaigns)

Вывод будет следующим:

  Кампания  Дата_начала   Тип
0     К001  2021-01-01  Новая
1     К002  2020-06-15 Старая
2     К003  2019-12-01 Старая
3     К004  2022-03-10  Новая

Заключение

Мы рассмотрели несколько способов замены значений в столбцах DataFrame с помощью библиотеки Pandas. Вы узнали о методах replace(), loc[] и mask(), а также увидели примеры их применения на реальных данных. Каждый из этих методов имеет свои преимущества и применяется в определённых ситуациях.


Добавить комментарий