#python #pandas
Вопрос:
Попытка удалить строки с несуществующим путем…
data_docs = pd.read_csv('Documents_data.csv')
data_docs.drop(data_docs[os.path.exists(str(data_docs['file path']))].index, inplace=True)
Ошибка:
KeyError: False
Ответ №1:
В его нынешнем os.path.exists
виде рассматривается все str
представление столбца, а не по элементам. Один из способов-это apply
:
exists = data_docs["file path"].apply(os.path.exists)
data_docs = data_docs[exists]
Если вы напечатаете exists
, это будет логический ряд, указывающий, какие пути существуют, а какие нет.
exists = ~exists
data_docs.drop(data_docs[exists].index, inplace=True)
перевернутый exist
, чтобы удалить файл с ложным результатом,
теперь он удалит несуществующие файлы.