Pandas: як видалити стовпець, якщо він існує


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

 df = df. drop ([' column1 ', ' column2 '], axis= 1 , errors=' ignore ')

Примітка. Якщо ви не використовуєте аргумент error=’ignore’ , ви отримаєте повідомлення про помилку, якщо спробуєте видалити стовпець, якого не існує.

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: видаліть стовпець, якщо він існує в Pandas

Припустімо, що у нас є такий фрейм даних 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

Тепер припустімо, що ми спробуємо видалити стовпці з іменами minutes_played і points :

 #drop minutes_played and points columns
df = df. drop ([' minutes_played ', ' points '], axis= 1 )

KeyError: "['minutes_played', 'points'] not found in axis"

Ми отримуємо повідомлення про помилку, оскільки стовпець minutes_played не існує як ім’я стовпця у DataFrame.

Замість цього нам потрібно використовувати функцію drop() з аргументом errors=’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.

Також зауважте, що ми не отримуємо жодних помилок, навіть якщо ми намагалися видалити стовпець з назвою minutes_played , якого не існує.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в pandas:

Pandas: як видалити безіменні стовпці
Pandas: як видалити всі стовпці, крім окремих
Pandas: як видалити всі рядки, крім деяких

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *