Как удалить строки в DataFrame с помощью Python Pandas

Чтобы удалить строки из DataFrame в Pandas, вы можете использовать метод drop() с указанием индексов строк, которые нужно удалить.

import pandas as pd

# Создаем DataFrame
df = pd.DataFrame({'Колонка1': [1, 2, 3, 4, 5],
                   'Колонка2': ['а', 'б', 'в', 'г', 'д']})

# Удаляем строки с индексами 2 и 4
df.drop([2, 4], inplace=True)

print(df)

Этот код удалит строки с индексами 2 и 4 из DataFrame.

Детальный ответ

Изменение данных в Pandas DataFrame: удаление строк

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

Методы удаления строк в DataFrame

Pandas предоставляет несколько способов удаления строк в DataFrame. Мы рассмотрим следующие методы:

  • Метод drop(): Удаляет строки по индексу или по условию.
  • Метод dropna(): Удаляет строки с отсутствующими значениями.
  • Метод drop_duplicates(): Удаляет дублирующиеся строки.
  • Метод where(): Удаляет строки, не соответствующие указанному условию.
  • Метод query(): Удаляет строки согласно SQL-подобному выражению.

Метод drop()

Метод drop() позволяет удалить строки по индексу или по условию. Этот метод возвращает новый DataFrame без удаленных строк. Давайте рассмотрим два примера использования метода drop().

Удаление строк по индексу:

import pandas as pd

data = {'Name': ['John', 'Emma', 'Ryan', 'Emily', 'Daniel'],
        'Age': [25, 28, 20, 22, 24],
        'City': ['London', 'New York', 'Paris', 'Tokyo', 'Sydney']}

df = pd.DataFrame(data)

# Удаляем строки по индексу
new_df = df.drop([1, 3])

В этом примере мы создали DataFrame с именем, возрастом и городом разных людей. Затем мы использовали метод drop() для удаления строк с индексами 1 и 3. Результат сохраняется в переменной new_df. Если мы выведем новый DataFrame, мы увидим, что строки с именами "Emma" и "Emily" были удалены.

Удаление строк по условию:

# Удаляем строки с возрастом меньше 25
new_df = df.drop(df[df['Age'] < 25].index)

В этом примере мы использовали метод drop() и условие df['Age'] < 25 для удаления строк с возрастом меньше 25. Мы получим новый DataFrame, в котором не останется строк с возрастом меньше 25.

Метод dropna()

Метод dropna() удаляет строки с отсутствующими значениями (NaN) в DataFrame. Этот метод полезен при очистке данных от пустых значений. Давайте посмотрим на пример использования метода dropna().

# Создаем DataFrame с отсутствующими значениями
data = {'Name': ['John', 'Emma', None, 'Emily', 'Daniel'],
        'Age': [25, 28, 20, None, 24],
        'City': ['London', None, 'Paris', 'Tokyo', 'Sydney']}

df = pd.DataFrame(data)

# Удаляем строки с отсутствующими значениями
new_df = df.dropna()

В этом примере мы создали DataFrame с некоторыми пустыми значениями (None) в столбцах "Name", "Age" и "City". Затем мы использовали метод dropna(), чтобы удалить строки с отсутствующими значениями. В результате мы получим новый DataFrame, где строки с пустыми значениями были удалены.

Метод drop_duplicates()

Метод drop_duplicates() удаляет дублирующиеся строки из DataFrame. Этот метод полезен при удалении повторяющихся данных. Давайте посмотрим на пример использования метода drop_duplicates().

# Создаем DataFrame с дублирующимися строками
data = {'Name': ['John', 'Emma', 'Ryan', 'Emma', 'Daniel'],
        'Age': [25, 28, 20, 28, 24],
        'City': ['London', 'New York', 'Paris', 'New York', 'Sydney']}

df = pd.DataFrame(data)

# Удаляем дублирующиеся строки
new_df = df.drop_duplicates()

В этом примере мы создали DataFrame с дублирующимися строками. Затем мы использовали метод drop_duplicates() для удаления всех дубликатов. В результате мы получим новый DataFrame, где все дублирующиеся строки будут удалены.

Метод where()

Метод where() удаляет строки, которые не соответствуют указанному условию. Этот метод возвращает новый DataFrame, в котором строки, не соответствующие условию, заменены на NaN. Давайте рассмотрим пример его использования.

# Удаляем строки, возраст которых меньше 25
new_df = df.where(df['Age'] >= 25)

В этом примере мы использовали метод where() и условие df['Age'] >= 25 для удаления строк, возраст которых меньше 25. В результате мы получим новый DataFrame, где строки с возрастом меньше 25 заменены на NaN.

Метод query()

Метод query() удаляет строки согласно SQL-подобному выражению. Этот метод часто используется для фильтрации данных по условию. Давайте рассмотрим пример его использования.

# Удаляем строки со значением возраста больше или равным 25
new_df = df.query("Age >= 25")

В этом примере мы использовали метод query() и условие "Age >= 25" для удаления строк со значением возраста больше или равным 25. В результате мы получим новый DataFrame, где останутся только строки, удовлетворяющие условию.

Заключение

В этой статье мы рассмотрели несколько методов удаления строк в Pandas DataFrame. Методы drop(), dropna(), drop_duplicates(), where() и query() предоставляют различные способы очистки данных от ненужных строк. Используйте их с умом в своих проектах и анализах данных.

Видео по теме

Python Pandas Tutorial (Part 6): Add/Remove Rows and Columns From DataFrames

How to Remove a Row From a Data Frame in Pandas (Python)

Python Pandas Tutorial 5 | How to delete Rows and Columns from a data frame

Похожие статьи:

Как узнать версию Python в Jupyter

Как избавиться от двух вложенных циклов в Python

Как удалить строки в DataFrame с помощью Python Pandas

Документация pandas python: изучаем основы и применение

🔍 Что такое миксины в Python: подробное объяснение и использование 🔍