Как удалить строку из датафрейма pandas
Перейти к содержимому

Как удалить строку из датафрейма pandas

  • автор:

Как удалить строки в 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 как обрезать строку, чтобы при выборке.

удаление части строки
Всем привет! Есть вопрос. У меня есть бинарный файл. В нем содержится информация: Идентификатор.

Эксперт Python

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 Петров$Петр;Петрович.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *