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

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

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

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

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

Метод 2: удаление строк на основе нескольких условий

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

В следующих примерах показано, как использовать этот синтаксис на практике со следующими пандами DataFrame:

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

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

Любая строка, которая имела значение меньше или равное 8 в столбце «помощь», была удалена из DataFrame.

Метод 2: удаление строк на основе нескольких условий

В следующем коде показано, как удалять строки в DataFrame на основе нескольких условий:

Единственные строки, которые мы сохранили в DataFrame, были те, в которых значение помощи было больше 8, а значение подбора больше 5.

Обратите внимание, что мы также можем использовать | оператор для применения фильтра «или»:

Единственные строки, которые мы сохранили в 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 <advanced.shown_levels> 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 <‘ignore’, ‘raise’>, 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.

Delete rows and columns from a DataFrame using Pandas drop()

9 tricks to master Pandas drop() and speed up your data analysis

Data manipulation refers to the process of adjusting data to make it organised and easier to read. Frequently, there is data that is unusable and can interfere with what matters. Unnecessary or inaccurate data should be cleaned and deleted.

Source from solvexia.com [1]

Delete one or many rows/columns from a Pandas DataFrame can be achieved in multiple ways. Among them, the most common one is the drop() method. The method seems fairly straightforward to use, but there are still some tricks you should know to speed up your data analysis.

In this article, you’ll learn Pandas drop() tricks to deal with the following use cases:

  1. Delete a single row
  2. Delete multiple rows
  3. Delete rows based on row position and custom range
  4. Delete a single column
  5. Delete multiple columns
  6. Delete columns based on column position and custom range
  7. Working with MultiIndex DataFrame
  8. Do operation in place with inplace=True
  9. Suppress error with error='ignore'

Please check out the Notebook for source code. More tutorials are available from Github Repo.

1. Delete a single row

By default, Pandas drop() will remove the row based on their index values. Most often, the index value is an 0-based integer value per row. Specifying a row index will delete it, for example, delete the row with the index value 1 .:

Note that the argument axis must be set to 0 for deleting rows (In Pandas drop() , the axis defaults to 0 , so it can be omitted). If axis=1 is specified, it will delete columns instead.

Alternatively, a more intuitive way to delete a row from DataFrame is to use the index argument.

2. Delete multiple rows

Pandas drop() can take a list to delete multiple rows:

Similarly, a more intuitive way to delete multiple rows is to pass a list to the index argument:

3. Delete rows based on row position and custom range

The DataFrame index values may not be in ascending order, sometimes they can be any other values, for example, datetime or string labels. For these cases, we can delete rows based on their row position, for instance, delete the 2nd row, we can call df.index[1] and pass it to the index argument:

To delete the last row, we can use shortcuts such as -1 which identifies the last index:

We can also use the slice technique to select a range of rows, for instance

  • Delete the last 2 rows df.drop(index=df.index[-2:])
  • Delete every other row df.drop(index=df.index[::2])

If you want to learn more about the slice technique and how to use row index for selecting data, you can check out this article:

Ссылка на основную публикацию