#python #pandas
#python #pandas
Вопрос:
У меня есть следующая строка кода, которая используется для удаления некоторых столбцов во фрейме данных. Может случиться так, что некоторые из этих столбцов не существуют во фрейме данных.
df =
col1 col2 col3
asa 132 4534
dfd 24 4252
cols = ["col1", "colB"]
df.drop(cols, inplace=True, axis=1)
Как я могу пропустить столбцы, которые не существуют?
Ожидаемый результат:
df =
col2 col3
132 4534
24 4252
Ответ №1:
Проверьте с помощью errors='ignore'
cols = ["col1", "colB"]
df.drop(cols, axis=1, errors='ignore', inplace=True)
df
Out[167]:
col2 col3
0 132 4534
1 24 4252
Комментарии:
1. Как вы копируете свои выходные данные из jupyter notebook подобным образом?
2. но вы просто выделяете это с помощью мыши и копируете-вставляете? У меня это не работает. @Wen-Ben
3. @crytting это графический интерфейс для программирования, я использую pycharm, а не jupyter
Ответ №2:
import pandas as pd
col1 = ['asa', 'dfd']
col2 = [132, 24]
col3 = [4523, 4252]
cols = {'col1':col1,'col2':col2, 'col3':col3}
df = pd.DataFrame(cols)
drop_cols = ['col1', 'colB']
for col in drop_cols:
if col in df.columns.values:
df.drop(col, inplace = True, axis = 1)
df
возвращает то, что вы ищете.
col2 col3
0 132 4523
1 24 4252