Pandas: как удалить столбец, если он существует
Вы можете использовать следующий базовый синтаксис для удаления одного или нескольких столбцов в DataFrame pandas, если они существуют:
df = df. drop ([' column1 ', ' column2 '], axis= 1 , errors=' ignore ')
Примечание. Если вы не используете аргумент error=’ignore’ , вы получите сообщение об ошибке при попытке удалить несуществующий столбец.
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: удалить столбец, если он существует в Pandas
Предположим, у нас есть следующий DataFrame pandas, содержащий информацию о различных баскетболистах:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F'],
' points ': [18, 22, 19, 14, 14, 11],
' assists ': [5, 7, 7, 9, 12, 9],
' minutes ': [10.1, 12.0, 9.0, 8.0, 8.4, 7.5],
' all_star ': [True, False, False, True, True, True]})
#view DataFrame
print (df)
team points assists minutes all_star
0 A 18 5 10.1 True
1 B 22 7 12.0 False
2 C 19 7 9.0 False
3 D 14 9 8.0 True
4 E 14 12 8.4 True
5 F 11 9 7.5 True
Теперь предположим, что мы пытаемся удалить столбцы с именами минуты_воспроизведения и точки :
#drop minutes_played and points columns df = df. drop ([' minutes_played ', ' points '], axis= 1 ) KeyError: "['minutes_played', 'points'] not found in axis"
Мы получаем сообщение об ошибке, поскольку столбец «Минуты_воспроизведено» не существует в качестве имени столбца в DataFrame.
Вместо этого нам нужно использовать функцию drop() с аргументом error=’ignore’ :
#drop minutes_played and points columns df = df. drop ([' minutes_played ', ' points '], axis= 1 , errors=' ignore ') #view updated DataFrame print (df) team assists minutes all_star 0 A 5 10.1 True 1 B 7 12.0 False 2 C 7 9.0 False 3 D 9 8.0 True 4 E 12 8.4 True 5 F 9 7.5 True
Обратите внимание, что столбец точек был удален из DataFrame.
Также обратите внимание, что мы не получаем никаких ошибок, даже несмотря на то, что пытались удалить столбец с именем минуты_играли , которого не существует.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:
Pandas: как удалить безымянные столбцы
Pandas: как удалить все столбцы, кроме определенных
Pandas: как удалить все строки, кроме некоторых