Pandas: как удалить строки, содержащие определенное значение


Вы можете использовать следующий синтаксис для удаления строк в кадре данных pandas, которые содержат определенное значение в определенном столбце:

#drop rows that contain specific 'value' in 'column_name'
df = df[df.column_name != value ]

Вы можете использовать следующий синтаксис для удаления строк в кадре данных pandas, которые содержат любое значение в определенном списке:

#define values
values = [value1, value2, value3, ...]

#drop rows that contain any value in the list
df = df[df.column_name.isin (values) == False ]

В следующих примерах показано, как использовать этот синтаксис на практике.

Пример 1. Удаление строк, содержащих определенное значение

В следующем коде показано, как удалить любые строки, содержащие определенное значение в одном столбце:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['Mavs', 'Lakers', 'Spurs', 'Cavs'],
 'name': ['Dirk', 'Kobe', 'Tim', 'Lebron'],
 'rebounds': [11, 7, 14, 7],
 'points': [26, 31, 22, 29]})

#view DataFrame
df

 team name rebounds points
0 Mavs Dirk 11 26
1 Lakers Kobe 7 31
2 Spurs Tim 14 22
3 Cavs Lebron 7 29

#drop any rows that have 7 in the rebounds column
df = df[df.rebounds != 7 ]

#view resulting DataFrame
df

 team name rebounds points
0 Mavs Dirk 11 26
2 Spurs Tim 14 22

Пример 2. Удаление строк, содержащих значения в списке

В следующем коде показано, как удалить любые строки в DataFrame, содержащие любое значение в списке:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['Mavs', 'Lakers', 'Spurs', 'Cavs'],
 'name': ['Dirk', 'Kobe', 'Tim', 'Lebron'],
 'rebounds': [11, 7, 14, 7],
 'points': [26, 31, 22, 29]})

#view DataFrame
df

 team name rebounds points
0 Mavs Dirk 11 26
1 Lakers Kobe 7 31
2 Spurs Tim 14 22
3 Cavs Lebron 7 29

#define list of values
values = [7, 11]

#drop any rows that have 7 or 11 in the rebounds column
df = df[df.rebounds.isin (values) == False ]

#view resulting DataFrame
df

 team name rebounds points
2 Spurs Tim 14 22

Пример 3. Удаление строк, содержащих определенные значения в нескольких столбцах

В следующем коде показано, как удалить любые строки в DataFrame, которые содержат определенное значение в одном из нескольких столбцов:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['Mavs', 'Lakers', 'Spurs', 'Cavs'],
 'name': ['Dirk', 'Kobe', 'Tim', 'Lebron'],
 'rebounds': [11, 7, 14, 7],
 'points': [26, 31, 22, 29]})

#view DataFrame
df

 team name rebounds points
0 Mavs Dirk 11 26
1 Lakers Kobe 7 31
2 Spurs Tim 14 22
3 Cavs Lebron 7 29

#drop any rows that have 11 in the rebounds column or 31 in the points column
df = df[(df.rebounds != 11 ) & (df.points != 31 )]

#view resulting DataFrame
df

team name rebounds points
2 Spurs Tim 14 22
3 Cavs Lebron 7 29

Дополнительные ресурсы

Как удалить строки по индексу в Pandas
Как удалить столбцы по индексу в Pandas
Как удалить строки, содержащие определенную строку в Pandas

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.