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

Pandas Cumsum () Программирование и разработка

В этом руководстве мы обсудим, как удалить одну или несколько строк из DataFrame Pandas. Используя функцию pandas.DataFrame.drop(), мы можем удалить строки из DataFrame. Строки из DataFrame удаляются условно с помощью свойства pandas.DataFrame.loc[] и функции pandas.DataFrame.isin() путем указания оператора тильды (~). Каждый из них обсуждается как разные сценарии. В каждом сценарии мы удаляем строки по-разному. Кроме того, мы обсудим, как удалить строки, содержащие пропущенные значения, с помощью функции pandas.DataFrame.dropna().

Использование Pandas.DataFrame.Drop

Pandas.DataFrame.drop() используется для удаления определенных строк/столбцов из DataFrame Pandas. Мы можем удалить строки/столбцы в зависимости от значения оси (0 или 1).

Давайте посмотрим синтаксис и параметры, которые передаются в эту функцию:

pandas.DataFrame.drop(labels, axis, index, level, inplace)

1. Метки строк передаются параметру labels (по умолчанию = None). Вы можете передать метку/индекс одной строки внутри кортежа. Передайте столбцы через список, если вы хотите удалить несколько строк.

2. Параметр «ось» (по умолчанию = 0) используется для удаления строк. Нет необходимости передавать этот параметр.

3. Параметр «inplace» обновляет исходный DataFrame, если для него установлено значение «True». По умолчанию это «Ложь». Если для него установлено значение «False», исходный DataFrame не обновляется, и ему необходимо сохранить результат в другом DataFrame или любом объекте в этом сценарии.

Пример 1. Удаление строк с помощью меток

Мы удаляем одну или несколько строк на основе метки индекса. Давайте создадим DataFrame (Контакты) с тремя столбцами и пятью записями. Передайте метки индекса [«C1», «C2», «C3», «C4», «C5»] в параметр «index» при создании самого DataFrame.

1. Сначала мы удаляем вторую строку, передав «C2» в параметр «labels».

Читайте также:  Как найти элементы в массиве Ruby?

2. Затем мы передаем список меток индекса [«C1», «C2», «C3»] в параметр labels, чтобы удалить эти строки.

import pandas
Contacts = pandas.DataFrame([[‘Sravan’,‘Manager’, ‘Sales’],
[‘Manju’,‘Lead’, ‘Technical’],
[‘Siri’,‘Analyst’, ‘Marketing’],
[‘Gowthami’,‘Trainee’, ‘Technical’],
[‘Rani’,‘Trainee’, ‘Technical’]],
columns=[‘Name’, ‘Role’,‘Department’],
index=[‘C1’,‘C2’,‘C3’,‘C4’,‘C5’])
print(Contacts,«\n«)

# Drop second row
final_Contacts=Contacts.drop(labels=(‘C2’),axis=0)
print(final_Contacts,«\n«)

# Drop first three rows
final_Contacts=Contacts.drop(labels=[‘C1’,‘C2’,‘C3’],axis=0)
print(final_Contacts,«\n«)

Выход :

В DataFrame «Контакты» пять стро

В DataFrame «Контакты» пять строк. После удаления второй строки общее количество записей составит четыре. После удаления первых трех строк DataFrame содержит только две строки.

Пример 2. Удаление строк с использованием позиции индекса

Используйте предыдущий DataFrame «Контакты» и удалите строки, используя позицию индекса. Индексация начинается с 0. Итак, мы передаем Contacts.index[] в параметр «labels». Позиции индексов строк указываются в квадратных скобках.

1. Удалите первую строку — labels=Contacts.index[0].

2. Удалите последние две строки — labels=Contacts.index[[3,4]]

import pandas
Contacts = pandas.DataFrame([[‘Sravan’,‘Manager’, ‘Sales’],
[‘Manju’,‘Lead’, ‘Technical’],
[‘Siri’,‘Analyst’, ‘Marketing’],
[‘Gowthami’,‘Trainee’, ‘Technical’],
[‘Rani’,‘Trainee’, ‘Technical’]],
columns=[‘Name’, ‘Role’,‘Department’],
index=[‘C1’,‘C2’,‘C3’,‘C4’,‘C5’])
print(Contacts,«\n«)

# Drop first row
final_Contacts=Contacts.drop(labels=Contacts.index[0],axis=0)
print(final_Contacts,«\n«)

# Drop last two rows
final_Contacts=Contacts.drop(labels=Contacts.index[[3,4]],axis=0)
print(final_Contacts,«\n«)

Выход :

осле удаления первой строки общее количество запи

В DataFrame «Контакты» пять строк. После удаления первой строки общее количество записей равно четырем. После удаления последних двух строк DataFrame содержит только три строки.

Пример 3. Удаление строк с использованием индекса по умолчанию

У нас есть тот же DataFrame без индексных меток. Индексы по умолчанию: 0, 1, 2, 3 и 4.

1. Удалите первую строку, указав индекс по умолчанию, равный 0.

2. >Удалите первую, третью и последнюю строки, указав индексы по умолчанию, равные 0, 2 и 4.

import pandas
Contacts = pandas.DataFrame([[‘Sravan’, ‘Sales’],
[‘Manju’,‘Technical’],
[‘Siri’, ‘Marketing’],
[‘Gowthami’, ‘Technical’],
[‘Rani’, ‘Technical’]],
columns=[‘Name’,‘Department’])
print(Contacts,«\n«)# Drop first row by specifying default index
final_Contacts=Contacts.drop(labels=0)
print(final_Contacts,«\n«)# Drop multiple rows by specifying default indices
final_Contacts=Contacts.drop(labels=[0,2,4])
print(final_Contacts,«\n«)

Выход :

После удаления первой строки общее количество записей сост

В DataFrame «Контакты» пять строк. После удаления первой строки общее количество записей составит четыре. После удаления последних двух строк DataFrame содержит только три строки.

Пример 4. Условное удаление строк с помощью Isin()

Оператор тильда (~) согласовывает условие, указанное в функции isin().

1. Удалите строки, в которых отдел стоит «Технический».

2. Удалите строки, в которых указан отдел «Продажи».

import pandas
Contacts = pandas.DataFrame([[‘Sravan’,45, ‘Sales’],
[‘Manju’,37, ‘Technical’],
[‘Siri’,25, ‘Marketing’],
[‘Gowthami’,22, ‘Technical’],
[‘Rani’,56, ‘Technical’]],
columns=[‘Name’, ‘Age’,‘Department’])
print(Contacts,«\n«)

# Use the isin() with ~ to remove the rows where Department is «Technical»
final_Contacts= Contacts[~Contacts[«Department»].isin([«Technical»])]
print(final_Contacts,«\n«)

# Use the isin() with ~ to remove the rows where Department is «Sales»
final_Contacts= Contacts[~Contacts[«Department»].isin([«Sales»])]
print(final_Contacts,«\n«)

Выход :

В DataFrame в столбце «Отдел» существуют тр

В DataFrame в столбце «Отдел» существуют три строки «Технические». Эти три строки удалены из DataFrame, и в столбце «Отдел» существует одна строка «Продажи». Таким образом, из DataFrame удаляется только одна строка.

Пример 5. Условное удаление строк с помощью Loc[]

По сути, свойство loc[] используется для выбора строк на основе меток строк. Оператор тильда (~) согласовывает условие, указанное в свойстве loc[]. Используйте это свойство с ~, чтобы удалить строки с возрастом > 38.

import pandas
Contacts = pandas.DataFrame([[‘Sravan’,45, ‘Sales’],
[‘Manju’,37, ‘Technical’],
[‘Siri’,25, ‘Marketing’],
[‘Gowthami’,22, ‘Technical’],
[‘Rani’,56, ‘Technical’]],
columns=[‘Name’, ‘Age’,‘Department’])

# Use the loc[] property with ~ to remove the rows with Age > 38
final_Contacts= Contacts.loc[~(Contacts[‘Age’] > 38)]
print(final_Contacts,«\n«)

Выход :

Есть две строки с возрастом больше 38

Есть две строки с возрастом больше 38 (45 и 56). Эти две строки удаляются из DataFrame «Контакты».

Пример 6. Удаление строк, содержащих пропущенные значения

1. Удалите строку, если присутствуют какие-либо пропущенные значения, передав «любой» параметру «как».

2. Удалите строку, если все отсутствуют, передав «все» в параметр «как».

3. Удалите строки, присутствующие в столбцах «Имя» и «Возраст», передав параметр «подмножество».

import pandas
Contacts = pandas.DataFrame([[‘Sravan’,45, None],
[‘Manju’,37, ‘Technical’],
[None,None ,None],
[‘Gowthami’,22, ‘Technical’],
[None,56, ‘Technical’]],
columns=[‘Name’, ‘Age’,‘Department’])

print(Contacts,«\n«)

# Drop the row if any missing values are present
print(Contacts.dropna(how=‘any’),«\n«)

# Drop the row if all are missing
print(Contacts.dropna(how=‘all’),«\n«)

# Drop the rows that are present in ‘Name’ and ‘Age’ columns.
print(Contacts.dropna(subset=[‘Name’, ‘Age’]),«\n«)

Выход :

 

1. How= ’ any ’: в DataFrame есть только три строки, в которых хотя бы одно пропущенное значение. Итак, эти три удаляются из DataFrame.

2. How = ’ all ’: в DataFrame есть одна строка, содержащая все пропущенные значения. Итак, оно отброшено.

3. subset=[’Name’, ’Age’] : строки с отсутствующими значениями, присутствующими в столбцах «Имя» и «Возраст», удаляются.

Заключение

Мы узнали, как удалить строки из DataFrame Pandas с помощью функции pandas.DataFrame.drop(). В этом сценарии обсуждаются три примера, основанные на метках и индексах по умолчанию. Затем мы обсудили, как условно удалить строки с помощью функции pandas.DataFrame.isin() и свойства pandas.DataFrame.loc[]. Наконец, мы привели пример удаления строк с пропущенными значениями с помощью функции pandas.DataFrame.dropna().

Оцените статью
bestprogrammer.ru
Добавить комментарий