Как удалить строки по индексу в 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({'team': ['Mavs', 'Lakers', 'Spurs', 'Cavs'],
 'first': ['Dirk', 'Kobe', 'Tim', 'Lebron'],
 'last': ['Nowitzki', 'Bryant', 'Duncan', 'James'],
 'points': [26, 31, 22, 29]})

#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({'team': ['Mavs', 'Lakers', 'Spurs', 'Cavs'],
 'first': ['Dirk', 'Kobe', 'Tim', 'Lebron'],
 'last': ['Nowitzki', 'Bryant', 'Duncan', 'James'],
 'points': [26, 31, 22, 29]})

#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({'team': ['Mavs', 'Lakers', 'Spurs', 'Cavs'],
 'last': ['Nowitzki', 'Bryant', 'Duncan', 'James'],
 'last': ['Nowitzki', 'Bryant', 'Duncan', 'James'],
 'points': [26, 31, 22, 29]},
 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

Дополнительные ресурсы

Как удалить столбцы по индексу в Pandas
Pandas: как удалить строки, содержащие определенную строку
Pandas: как удалить повторяющиеся строки