Как удалить строки в Pandas DataFrame на основе условия
Мы можем использовать следующий синтаксис для удаления строк в pandas DataFrame на основе условия:
Метод 1: удаление строк на основе одного условия
df = df[df.col1 > 8]
Метод 2: удаление строк на основе нескольких условий
df = df[(df.col1 > 8) & (df.col2 != 'A')]
Примечание.Мы также можем использовать функцию drop() для удаления строк из DataFrame, но эта функция оказалась намного медленнее, чем простое присвоение DataFrame отфильтрованной версии самого себя.
В следующих примерах показано, как использовать этот синтаксис на практике со следующими пандами DataFrame:
import pandas as pd #create DataFrame df = pd.DataFrame() #view DataFrame df team pos assists rebounds 0 A G 5 11 1 A G 7 8 2 A F 7 10 3 A F 9 6 4 B G 12 6 5 B G 9 5 6 B F 9 9 7 B F 4 12
Метод 1: удаление строк на основе одного условия
В следующем коде показано, как удалять строки в DataFrame на основе одного условия:
#drop rows where value in 'assists' column is less than or equal to 8 df = df[df.assists > 8] #view updated DataFrame df team pos assists rebounds 3 A F 9 6 4 B G 12 6 5 B G 9 5 6 B F 9 9
Любая строка, которая имела значение меньше или равное 8 в столбце «помощь», была удалена из DataFrame.
Метод 2: удаление строк на основе нескольких условий
В следующем коде показано, как удалять строки в DataFrame на основе нескольких условий:
#only keep rows where 'assists' is greater than 8 and rebounds is greater than 5 df = df[(df.assists > 8) & (df.rebounds > 5)] #view updated DataFrame df team pos assists rebounds 3 A F 9 6 4 B G 12 6 5 B G 9 5 6 B F 9 9
Единственные строки, которые мы сохранили в DataFrame, были те, в которых значение помощи было больше 8, а значение подбора больше 5.
Обратите внимание, что мы также можем использовать | оператор для применения фильтра «или»:
#only keep rows where 'assists' is greater than 8 or rebounds is greater than 10 df = df[(df.assists > 8) | (df.rebounds > 10)] #view updated DataFrame df team pos assists rebounds 0 A G 5 11 3 A F 9 6 4 B G 12 6 5 B G 9 5 6 B F 9 9 7 B F 4 12
Единственные строки, которые мы сохранили в DataFrame, были те, в которых значение помощи было больше 8 или значение подбора было больше 10.
Все строки, не соответствующие одному из этих условий, удалялись.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:
Как удалить строки по индексу в Pandas (с примерами)
Вы можете использовать следующий синтаксис, чтобы удалить одну строку из pandas DataFrame по номеру индекса:
#drop first row from DataFrame df = df.drop (index= 0 )
И вы можете использовать следующий синтаксис, чтобы удалить несколько строк из pandas DataFrame по номерам индексов:
#drop first, second, and fourth row from DataFrame df = df.drop (index=[ 0 , 1 , 3 ])
Если ваш DataFrame имеет строки в качестве значений индекса, вы можете просто передать имена в виде строк для удаления:
df = df.drop (index=['first', 'second', 'third'])
В следующих примерах показано, как на практике удалять строки по индексу.
Пример 1. Удаление одной строки по индексу
В следующем коде показано, как удалить вторую строку в кадре данных pandas:
import pandas as pd #create DataFrame df = pd.DataFrame() #view DataFrame df team first last points 0 Mavs Dirk Nowitzki 26 1 Lakers Kobe Bryant 31 2 Spurs Tim Duncan 22 3 Cavs Lebron James 29 #drop second row from DataFrame df = df.drop (index= 1 ) #view resulting dataFrame df team first last points 0 Mavs Dirk Nowitzki 26 2 Spurs Tim Duncan 22 3 Cavs Lebron James 29
Пример 2. Удаление нескольких строк по индексу
Следующий код показывает, как удалить несколько строк в pandas DataFrame по индексу:
import pandas as pd #create DataFrame df = pd.DataFrame() #view DataFrame df team first last points 0 Mavs Dirk Nowitzki 26 1 Lakers Kobe Bryant 31 2 Spurs Tim Duncan 22 3 Cavs Lebron James 29 #drop first, second, and fourth row from DataFrame df = df.drop (index=[ 0 , 1, 3 ]) #view resulting dataFrame df team first last points 2 Spurs Tim Duncan 22
Пример 3: удаление строк, когда индекс является строкой
В следующем коде показано, как удалять строки из кадра данных pandas по индексу, когда индекс представляет собой строку, а не число:
import pandas as pd #create DataFrame df = pd.DataFrame(, index=['A', 'B', 'C', 'D']) #view DataFrame df team first last points A Mavs Dirk Nowitzki 26 B Lakers Kobe Bryant 31 C Spurs Tim Duncan 22 D Cavs Lebron James 29 #remove rows with index values 'A' and 'C' df = df.drop (index=['A', 'C']) #view resulting DataFrame df team first last points B Lakers Kobe Bryant 31 D Cavs Lebron James 29
Удаление строк по условию в DataFrame (Pandas)
Выдает ошибку
KeyError: ‘[False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, . и далее 600 значений
lower_limit_ot = 37.0
а значения в таблице во 2 столбце:
57.48
28.40
37.50
42.40
Кто-нибудь может помочь с этим вроде обращаюсь к значению и сравниваю его с переменной. Даже возвращается значение True|False, а drop не удаляет
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Pandas, dataframe — добавление новых строк с сохранением результата прошлых расчетов
Здравствуйте спецы, помогите :'( Есть DataFrame: можно ли реализовать, чтобы при ручной смене.
Работа с dataframe. Удаление строк по условию. Получение минимальных значений
День добрый, господа программеры. Такой вопрос возник, у меня есть некий dataframe, в нем 10.
pandas подсчет количества по строкам в dataframe по условию
Добрый день, прошу помощи, нужно создать столбец который посчитает количество не нулевых дней в.
Удаление выбросов DataFrame (Pandas)
Требуется удалить выбросы из показателя, как это сделать я не знаю, поэтому пишу сюда..
680 / 301 / 76
Регистрация: 10.04.2012
Сообщений: 1,131
Записей в блоге: 2
1 2 3 4 5 6 7 8 9 10 11 12 13
import pandas as pd d1 = '2012-02-26' t1 = pd.DataFrame(pd.date_range(d1, periods=5, freq='D')) t2 = pd.DataFrame(range(500, 505)) df = pd.concat([t1, t2], axis=1) df.columns = list('AB') df = df.set_index('A') print(df) # Удалить 29 февраля df = df.drop(df[(df.index.month==2) & (df.index.day==29)].index) print(df)
В аргументе drop обязательно должен быть индекс
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Удаление строки из DataFrame. Библиотека Pandas
Как из датафрейма удалить определенную строку, которая не соответствующую условию. Пример: .
Дублирование строк в DataFrame pandas
Добрый день! Имеется ли простой способ продублировать строку DataFrame 5 раз подряд и это.
Pandas. Изменение значений Dataframe исходя из другого Dataframe
Добрый день. Прошу подсказать с реализаций следующего алгоритма: я загружаю из файла примерно.
Удаление строк в dataframe
Доброго времени суток! Возник вопрос. Есть 2 dataframe, в каждом dataframe 3 столбца. 1 — индекс, 2.
Удаление строк с определенными датами DataFrame
Добрый день! Подскажите пожалуйста как из DataFrame где есть даты в формате ‘%d.%m.%Y %H:%M:%S’.
Перестройка таблицы pandas с увеличением кол-ва строк по условию
Добрый день, столкнулся с проблемой, у меня большая таблица с разными параметрами, и мне надо.
Удаление части строки в датафрейме pandas
Помогите, пожалуйста, удалить части строки в датафрейме.
В датафрейме data есть столбец ‘locality_name’ с названиями населенных пунктов. Некоторые названия населенных пунктов неявно задублированы (например: село ромашка и просто ромашка и т.д.). Нужно избавиться от этих неявных дубликатов.
Для того, чтобы сделать этого по-одиночно для каждого варианта работает этот код:
data['new_locality_name'] = data['locality_name'].str.replace('село ','')
Хотел сделать сразу для всего столбца, но не получается:
1 2 3 4
locations = ['посёлок ', 'деревня ', 'посёлок городского типа ', 'поселок городского типа ', 'коттеджный поселок ', 'поселок '] for location in locations: if location in data['locality_name']: data['new_locality_name'] = data['locality_name'].str.replace(location,'')
Помогите, пожалуйста, с данным кодом.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Удаление строки в документе excel в Pandas
У меня есть огромный документ excel, в котором много строк и столбцов, в первой строке документа.
Удаление строки из DataFrame. Библиотека Pandas
Как из датафрейма удалить определенную строку, которая не соответствующую условию. Пример: .
Удаление части строки
Добрый день. Нужна помощь. Дана строка типа "C:\Program Files\Java\PHP\delete.txt" (Директория.
Удаление части строки
В базе имеются такие строки 111.01 и 111.02.01 как обрезать строку, чтобы при выборке.
удаление части строки
Всем привет! Есть вопрос. У меня есть бинарный файл. В нем содержится информация: Идентификатор.
7651 / 4098 / 1791
Регистрация: 27.03.2020
Сообщений: 6,913
AyurB, Так?
1 2 3 4 5 6 7 8
. import re locations = ['деревня ', 'посёлок городского типа ', 'коттеджный поселок ', 'поселок '] pattern = re.compile(r"\b(" + "|".join(locations) + ")\\W", re.I) data['new_locality_name'] = data['locality_name'].str.replace(pattern, "") .
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Удаление части строки
В string у меня есть несколько символов. Мне необходимо удалить из строки определённый символ.
Удаление части строки
Дана строка. Из другой строки в текстовом файле надо удалить из строки эту указанную строку.
Удаление части строки
Доброго времени суток. Ломаю голову над проблемой второй день уже Есть конструкция типа <div.
Удаление части строки
Имеется переменная, содержащая имя файла, например, $var = "filename.txt" Надо что-то сделать.
Удаление части строки и сепарирование строки
Пилю калькулятор и почти закончив столкнулся с тем, что реализация кнопок СЕ (удаление последнего.
Поиск и удаление части строки
Доброго времени суток. Есть файл вида: Иванов$Иван;Иванович gsgd;1234$121 Петров$Петр;Петрович.