Удалить строки датафрейма python

Как удалить строки в Pandas DataFrame на основе условия

Мы можем использовать следующий синтаксис для удаления строк в pandas DataFrame на основе условия:

Метод 1: удаление строк на основе одного условия

Метод 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.DataFrame.drop#

Remove rows or columns by specifying label names and corresponding axis, or by specifying directly index or column names. When using a multi-index, labels on different levels can be removed by specifying the level. See the user guide for more information about the now unused levels.

Parameters labels single label or list-like

Index or column labels to drop. A tuple will be used as a single label and not treated as a list-like.

Whether to drop labels from the index (0 or ‘index’) or columns (1 or ‘columns’).

index single label or list-like

Alternative to specifying axis ( labels, axis=0 is equivalent to index=labels ).

columns single label or list-like

Alternative to specifying axis ( labels, axis=1 is equivalent to columns=labels ).

level int or level name, optional

For MultiIndex, level from which the labels will be removed.

inplace bool, default False

If False, return a copy. Otherwise, do operation inplace and return None.

errors , default ‘raise’

If ‘ignore’, suppress error and only existing labels are dropped.

Returns DataFrame or None

DataFrame without the removed index or column labels or None if inplace=True .

If any of the labels is not found in the selected axis.

Label-location based indexer for selection by label.

Return DataFrame with labels on given axis omitted where (all or any) data are missing.

Return DataFrame with duplicate rows removed, optionally only considering certain columns.

Return Series with specified index labels removed.

>>> df = pd.DataFrame(np.arange(12).reshape(3, 4), . columns=['A', 'B', 'C', 'D']) >>> df A B C D 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11 
>>> df.drop(['B', 'C'], axis=1) A D 0 0 3 1 4 7 2 8 11 
>>> df.drop(columns=['B', 'C']) A D 0 0 3 1 4 7 2 8 11 
>>> df.drop([0, 1]) A B C D 2 8 9 10 11 

Drop columns and/or rows of MultiIndex DataFrame

>>> midx = pd.MultiIndex(levels=[['lama', 'cow', 'falcon'], . ['speed', 'weight', 'length']], . codes=[[0, 0, 0, 1, 1, 1, 2, 2, 2], . [0, 1, 2, 0, 1, 2, 0, 1, 2]]) >>> df = pd.DataFrame(index=midx, columns=['big', 'small'], . data=[[45, 30], [200, 100], [1.5, 1], [30, 20], . [250, 150], [1.5, 0.8], [320, 250], . [1, 0.8], [0.3, 0.2]]) >>> df big small lama speed 45.0 30.0 weight 200.0 100.0 length 1.5 1.0 cow speed 30.0 20.0 weight 250.0 150.0 length 1.5 0.8 falcon speed 320.0 250.0 weight 1.0 0.8 length 0.3 0.2 

Drop a specific index combination from the MultiIndex DataFrame, i.e., drop the combination ‘falcon’ and ‘weight’ , which deletes only the corresponding row

>>> df.drop(index=('falcon', 'weight')) big small lama speed 45.0 30.0 weight 200.0 100.0 length 1.5 1.0 cow speed 30.0 20.0 weight 250.0 150.0 length 1.5 0.8 falcon speed 320.0 250.0 length 0.3 0.2 
>>> df.drop(index='cow', columns='small') big lama speed 45.0 weight 200.0 length 1.5 falcon speed 320.0 weight 1.0 length 0.3 
>>> df.drop(index='length', level=1) big small lama speed 45.0 30.0 weight 200.0 100.0 cow speed 30.0 20.0 weight 250.0 150.0 falcon speed 320.0 250.0 weight 1.0 0.8 

Источник

Как из Pandas Dataframe удалить строку?

Pandas представляет нам отличные инструменты для обработки данных, в том числе для удаления той информации, которая нам не нужна. В этой статье мы рассмотрим различные способы удаления строк из Dataframe Pandas.

Как из Pandas удалить строку?

import pandas as pd
city_data = ‘Город’:[‘Москва’, ‘Казань’, ‘Владивосток’, ‘Санкт-Петербург’, ‘Калининград’],
‘Дата основания’:[‘1147’, ‘1005’, ‘1860’, ‘1703’, ‘1255’],
‘Площадь’:[‘2511’, ‘516’, ‘331’, ‘1439’, ‘223’],
‘Население’:[‘11,9’, ‘1,2’, ‘0,6’, ‘4,9’, ‘0,4’],
‘Погода’:[‘8’, ‘8’, ’17’, ‘9’, ’12’] >
city_df = pd.DataFrame(city_data)
city_df

В Pandas для удаления строк, а также столбцов используется метод drop. Его синтаксис следующий (обратите внимание, что необязательно использовать все параметры, можно только те, которые необходимы нам):

drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors=’raise’), где:

  • labels – номера или названия столбцов для удаления
  • axis – значение 0, если вы хотите удалить строки, либо 1, если планируете удалять столбцы
  • index – определяет, какие строки надо удалить
  • columns – определяет, какие столбцы надо удалить
  • inplace – изменяет оригинальный Dataframe, если параметр равен True
  • errors – игнорируются ошибки, если параметр задан как ignore

Способ 1. Удаление строки в Pandas по ее индексу

Для каждой строки в Dataframe Pandas присваивает индекс, обычно это число. В нашем учебном Dataframe, к примеру, у Москвы индекс 0, а у Калининграда 4. Давайте уберем запись с Владивостоком:

Обратите внимание, что по умолчанию метод drop не изменяет исходный dataframe, если вы хотите, что бы это было сделано, добавьте параметр inplace=True

Способ 2. Удаление строки в Pandas по ее содержанию

Предположим, нам надо убрать строку с названием города «Казань», но мы не знаем его индекса и хотим ее удалить по названию. Для этого мы должны сначала изменить столбец с индексами и вместо цифровых значений задать данные из столбца «Город»:

Теперь, когда в качестве индексов у нас названия городов, мы можем выполнить поставленную перед нами задачу:

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

Способ 3. Удаление строки в Pandas по условию

При помощи метода loc мы можем удалять строки по условию, к примеру мы хотим убрать из Dataframe те города, у которых площадь меньше 1 000 км2.

Так как мы будем применять математические условия, то сначала столбец «Площадь» мы должны перевести в формат int64:

Далее при помощи метода loc мы передадим в Dataframe отфильтрованные строки, а именно те, которые удовлетворяют условию, что Площадь > 1 000 км2

Спасибо за внимание. Дочитавшим до конца – традиционный бонус, наш ноутбук по этой статье.

P.S. Рекомендую еще ознакомиться с нашей статьей «Как из Pandas удалить столбец?».

Источник

Функция Pandas Drop() в Python

В этом руководстве по Python Pandas мы обсудим, что такое функция pandas drop() в Python, синтаксис функции Pandas drop(). А также мы увидим, как использовать Функция Pandas drop() на Python с несколькими примерами.

Падение панды ()

Функция Pandas drop() в Python используется для удаления указанных меток из строк и столбцов. Drop — это основная функция, используемая в науке о данных и машинном обучении для очистки набора данных.

Функция Pandas Drop() удаляет указанные метки из строк или столбцов. При использовании мультииндекса метки на разных уровнях можно удалить, указав уровень.

В целом, drop() Функция используется для удаления указанных строк или столбцов из DataFrame или Series pandas.

Синтаксис Python Pandas drop()

Вот синтаксис функции drop() Pandas.

DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors="raise")

Функция Python pandas drop()

Заключение

drop() в библиотеке Python pandas — очень полезный инструмент для удаления указанных строк или столбцов из DataFrame или Series. Функция принимает несколько параметров, в том числе удаляемые метки, ось (т. е. строки или столбцы) и необходимость изменения исходного фрейма данных на месте.

С drop() мы можем легко манипулировать структурой наших данных, удаляя ненужные строки или столбцы. Мы также можем связать несколько drop() функции вместе, чтобы удалить несколько строк или столбцов одновременно.

Важно отметить, что при использовании drop() функция с inplace=True , функция изменяет исходный DataFrame на месте и не возвращает новый объект DataFrame. Это может быть полезно, когда мы хотим сэкономить память или избежать создания ненужных копий наших данных.

В целом, drop() function — это мощный инструмент, который может помочь нам очищать и манипулировать нашими данными в Python pandas.

Вам могут понравиться следующие руководства по Python Pandas:

Python — один из самых популярных языков в Соединенных Штатах Америки. Я давно работаю с Python и имею опыт работы с различными библиотеками на Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn и т. д. У меня есть опыт работы с различными клиентами в таких странах, как США, Канада, Великобритания, Австралия, Новая Зеландия и т. д. Проверьте мой профиль.

Источник

Читайте также:  Как узнать что за символ php
Оцените статью