Удалить список строк из DataFrame Pandas
Библиотека pandas в Python широко популярна для представления данных в виде табличных структур данных. Набор данных организован в виде двумерной матрицы, состоящей из строк и столбцов. Библиотека Pandas предлагает множество функций, которые могут помочь программисту анализировать набор данных, предоставляя ценную математическую информацию.
Табличная структура данных известна как фрейм данных, который можно сгенерировать с помощью функции pandas DataFrame(). В этой статье мы выполним простую операцию по удалению нескольких строк из фрейма данных pandas.
Во-первых, нам нужно подготовить набор данных, а затем сгенерировать фрейм данных с помощью функции pandas «DataFrame()». Начнем с этого —
Подготовка набора данных
Данные из переданного набора данных будут упорядочены в виде строк и столбцов.
Пример
import pandas as pd dataset = <"Aman":[98, 92, 88, 90, 91], "Raj":[78, 62, 90, 71, 45], "Saloni":[82, 52, 95, 98, 80],>dataframe = pd.DataFrame(dataset,index=["Physics", "Chemistry", "Maths", "English", "Biology"]) print(dataframe)
Выход
Aman Raj Saloni Physics 98 78 82 Chemistry 92 62 52 Maths 88 90 95 English 90 71 98 Biology 91 45 80
Удаление строк через значения индекса
Для удаления строки мы будем использовать метод pandas «drop()». Это эффективный и простой способ удаления строк из фрейма данных. Ниже приведен синтаксис этого метода:
dataframe.drop(labels=None, *, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')
Нам не требуются все параметры для инициации операции «отбрасывания» (большинства значений по умолчанию будет достаточно). Существует два метода удаления строк: —
Мы укажем значение индекса для каждой строки, которую необходимо удалить.
Пример
Ниже приведена реализация этого метода. Здесь,
- После создания фрейма данных мы использовали метод drop() для удаления 3 rd и 4 th строк из фрейма данных.
- Мы выбрали исходный фрейм данных, хранящийся в переменной «dataframe», и заблокировали значения индекса для соответствующих строк, которые мы хотели удалить, с помощью «dataframe.index[[]] ”
- Создается новый фрейм данных, состоящий из оставшихся строк.
import pandas as pd dataset = <"Aman":[98, 92, 88, 90, 91], "Raj":[78, 62, 90, 71, 45], "Saloni":[82, 52, 95, 98, 80],>dataframe = pd.DataFrame(dataset,index=["Physics", "Chemistry", "Maths", "English", "Biology"]) print(dataframe) Drop_dataframe = dataframe.drop(dataframe.index[[2, 3]]) print("After dropping 3rd and 4th row") print(Drop_dataframe)
Выход
Aman Raj Saloni Physics 98 78 82 Chemistry 92 62 52 Maths 88 90 95 English 90 71 98 Biology 91 45 80 After dropping 3rd and 4th row Aman Raj Saloni Physics 98 78 82 Chemistry 92 62 52 Biology 91 45 80
Удаление строк через метки или имена строк
В этом методе мы используем точное имя строк (меток), которые мы хотим удалить из фрейма данных. Мы снова будем использовать метод drop() для выполнения этой техники. сейчас,
- Мы использовали тот же метод drop() для удаления третьей и четвертой строк из фрейма данных, но на этот раз мы использовали имя строки, которое мы пометили при создании фрейма данных.
- Создается новый фрейм данных, а исходный фрейм данных остается неизменным.
Пример
import pandas as pd dataset = <"Aman":[98, 92, 88, 90, 91], "Raj":[78, 62, 90, 71, 45], "Saloni":[82, 52, 95, 98, 80],>dataframe = pd.DataFrame(dataset,index=["Physics", "Chemistry", "Maths", "English", "Biology"]) print(dataframe) Drop_dataframe = dataframe.drop(["Maths", "English"]) print("After dropping 3rd and 4th row") print(Drop_dataframe)
Выход
Aman Raj Saloni Physics 98 78 82 Chemistry 92 62 52 Maths 88 90 95 English 90 71 98 Biology 91 45 80 After dropping 3rd and 4th row Aman Raj Saloni Physics 98 78 82 Chemistry 92 62 52 Biology 91 45 80
Мы также можем включить аргумент «inplace», если не хотим создавать еще один фрейм данных. Этот аргумент может изменить текущий фрейм данных, внеся в него изменения. Значением по умолчанию для этого аргумента является «False». Мы установим значение аргумента inplace как «True».
Использование индексного среза
Мы также можем удалить список строк, используя срез индекса. Ниже приведен пример этого:
- Здесь мы разрезали индекс и создали диапазон для удаления строк.
- Мы распечатали исходный фрейм данных, а затем использовали метод «dataframe.index[2:4]», чтобы установить диапазон от 2 до 3, и «dataframe.drop()». ” для удаления этих строк.
- Наконец, будет создан новый фрейм данных, состоящий из оставшихся строк.
Пример
import pandas as pd dataset = <"Aman":[98, 92, 88, 90, 91], "Raj":[78, 62, 90, 71, 45], "Saloni":[82, 52, 95, 98, 80],>dataframe = pd.DataFrame(dataset,index=["Physics", "Chemistry", "Maths", "English", "Biology"]) print(dataframe) drop_dataframe = dataframe.drop(dataframe.index[2:4]) print("After dropping 3rd and 4th row") print(drop_dataframe)
Выход
Aman Raj Saloni Physics 98 78 82 Chemistry 92 62 52 Maths 88 90 95 English 90 71 98 Biology 91 45 80 After dropping 3rd and 4th row Aman Raj Saloni Physics 98 78 82 Chemistry 92 62 52 Biology 91 45 80
Заключение
В этой статье мы рассмотрели основы фрейма данных pandas. Мы поняли различные методы удаления нескольких строк из фрейма данных. Мы обсудили различные способы указания строк, которые мы хотим удалить, например, с помощью «значения индекса» и «имя строки». Наконец, мы обсудили простой метод среза индекса.
Все права защищены. © Linux-Console.net • 2019-2024
Как удалить строки в 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)
Требуется удалить выбросы из показателя, как это сделать я не знаю, поэтому пишу сюда..
535 / 312 / 78
Регистрация: 10.04.2012
Сообщений: 1,160
Записей в блоге: 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 с увеличением кол-ва строк по условию
Добрый день, столкнулся с проблемой, у меня большая таблица с разными параметрами, и мне надо.
Или воспользуйтесь поиском по форуму: