DevGang
Авторизоваться

Замените несколько значений в DataFrame с помощью Pandas

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

Методы замены нескольких значений в DataFrame

Существует множество способов заменить несколько значений в DataFrame. В этом разделе мы рассмотрим три различных метода достижения этой цели. Прежде чем мы начнем работать с DataFrames, мы должны убедиться, что Pandas установлен в нашей системе. Если нет, мы можем легко установить его в нашу систему с помощью команды ниже.

pip install pandas

Мы рассмотрим три различных метода:

  1. Использование replace() со словарями
  2. Использование loc[] для условной замены значений
  3. Использование регулярного выражения

Теперь давайте разберем эти методы на примерах.

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

Самый простой способ заменить данные в DataFrame — использовать метод replace(). Давайте сначала разберемся в его синтаксисе.

Синтаксис:

DataFrame.replace(to_replace=None, value=_NoDefault.no_default, *, inplace=False, limit=None, regex=False)
  • to_replace: обязательный аргумент, указывающий значение, которое вы хотите заменить. Он уже должен присутствовать в DataFrame.
  • value: альтернативное значение, которым вы хотите заменить исходное значение. Это тоже обязательный аргумент.
  • inplace: необязательный аргумент, указывающий, изменяется ли DataFrame на месте.
  • limit: устанавливает максимальное количество значений, которые можно заменить в DataFrame.
  • regex: указывает, является ли значение регулярным выражением или нет.

Теперь давайте воспользуемся replace() в примере.

Пример:

Чтобы заменить значения, мы должны сначала создать DataFrame.

import pandas as pd
 
sample = pd.DataFrame([
    ['Rashmi', 'OS', 45],
    ['Subbu', 'IT', 32],
    ['Jaya', 'ML', 43],
    ['Manu', 'AI', 50]],
columns = ['Name', 'Deparment', 'age'], 
)
 
print(sample)

Наш DataFrame хранится в sample и содержит 3 столбца, которым присвоены имена столбцов с использованием списка columns.

Выход:

Это наш оригинальный, неизмененный DataFrame. Теперь, чтобы изменить его значения, мы будем использовать replace().

import pandas as pd
 
sample = pd.DataFrame([
    ['Rashmi', 'OS', 45],
    ['Subbu', 'IT', 32],
    ['Jaya', 'ML', 43],
    ['Manu', 'AI', 50]],
columns = ['Name', 'Deparment', 'age'], 
)
 
updated_sample = sample.replace({'age': {45:40, 43:37}, 
                                 'Name': {'Rashmi':'Megha', 'Jaya':'Jyoti'}})
 
print(updated_sample)

Здесь мы обновим значения, передав словари методу replace(). Мы сохраним измененный DataFrame в updated_sample. Мы получаем измененный DataFrame, печатая update_sample.

Выход:

Использование loc[] для условной замены значений

Если мы хотим заменить значения DataFrame на основе определенных условий, мы можем использовать атрибут loc[]. Он принимает имена строк и столбцов соответственно в качестве индексов и возвращает значения из DataFrame. Мы можем установить определенные ограничения или условия при передаче строк и столбцов в loc.

Пример:

import pandas as pd
 
sample = pd.DataFrame([
    ['Rashmi', 'OS', 45],
    ['Subbu', 'IT', 32],
    ['Jaya', 'ML', 43],
    ['Manu', 'AI', 50]],
columns = ['Name', 'Deparment', 'age'], 
)
 
sample.loc[(sample.age < 45), 'age'] = 'N/A'
 
print(sample)

Здесь мы используем атрибут loc в нашем sample DataFrame. Мы устанавливаем для строк условие, что возраст должен быть меньше 45 в выбранном столбце, в этом случае выбран столбец age. После того, как мы выбрали значения с помощью loc, мы присваиваем новое значение N/A для всех возрастов до 45 age в столбце возраста.

Выход:

Использование Regex

Regex (регулярные выражения) обычно используется для определения шаблона поиска с использованием определенной последовательности символов. Мы можем использовать шаблон регулярного выражения для поиска определенных данных и изменения их в DataFrame.

Пример:

import pandas as pd
 
sample = pd.DataFrame([
    ['Rashmi', 'OS', 45],
    ['Subbu', 'IT', 32],
    ['Jaya', 'ML', 43],
    ['Manu', 'AI', 50]],
    columns=['Name', 'Department', 'Age']
)
 
# Replace all 'a's in the 'Name' column with '#'
sample['Name'] = sample['Name'].str.replace('[a-j]', '#', regex=True)
 
print(sample)

Здесь мы используем регулярное выражение [a-j], чтобы указать, что все символы от a до j, включая a, но не j (только символы до i), должны быть заменены. Символ, которым они заменяются, — #. Для параметра regex установлено значение True, поскольку мы используем регулярные выражения.

Выход:

Заключение

Изменение DataFrame — это важный навык, который необходимо знать, когда дело доходит до работы с DataFrame в Pandas. В этой статье мы рассмотрели три уникальных способа замены определенных значений строк и столбцов в DataFrame, используя функцию replace() со словарями, атрибут loc и шаблоны regex pattern для поиска подстрок. Понимание этих методов сделает манипулирование данными более простым и эффективным.

Источники:

#Python #Pandas
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу