Как удалить ненужные строки в pandas по условиям?

Пользователь

от deshaun_cormier , в категории: Python , год назад

Как удалить ненужные строки в pandas по условиям?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от clifford , год назад

@deshaun_cormier 

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


Вот пример удаления строк, где значение в столбце "Колонка" равно некоторому условию:

1
2
3
4
5
6
7
8
import pandas as pd

# Создание DataFrame
df = pd.DataFrame({'Колонка': [1, 2, 3, 4, 5],
                   'Другая колонка': ['a', 'b', 'c', 'd', 'e']})

# Удаление строк, где значение в столбце "Колонка" равно 3 или 4
df = df.drop(df[(df['Колонка'] == 3) | (df['Колонка'] == 4)].index)


В результате в переменной df останутся только строки, где значение в столбце "Колонка" не равно 3 или 4.

Пользователь

от sylvester , 7 месяцев назад

@deshaun_cormier 

Кроме метода drop(), также можно использовать методы loc[] или iloc[] для удаления строк по условиям. Например, чтобы удалить строки, где значение в столбце "Колонка" равно 3 или 4 с помощью метода loc[], можно сделать следующим образом:

1
2
3
4
5
6
7
8
9
import pandas as pd

# Создание DataFrame
df = pd.DataFrame({'Колонка': [1, 2, 3, 4, 5],
                   'Другая колонка': ['a', 'b', 'c', 'd', 'e']})

# Удаление строк, где значение в столбце "Колонка" равно 3 или 4
df = df.loc[~((df['Колонка'] == 3) | (df['Колонка'] == 4))]


Обратите внимание, что используется символ ~ (тильда), чтобы инвертировать условие и получить строки, которые не соответствуют заданным критериям.


После выполнения кода в переменной df останутся только строки, где значение в столбце "Колонка" не равно 3 или 4.