#python #pandas
#python #pandas
Вопрос:
Итак, у меня есть фрейм данных pandas, и я хотел бы выбрать из него определенные строки на основе определенных значений в столбцах. Следующий код работает для меня:
df.query('Col1 == "zz" and Col2 == "yy"')
и возвращает все строки, в которых есть «zz» в Col1 и «yy» в Col2. Однако я сталкиваюсь с проблемой, если строка содержит апостроф. например
df.query('Col1 == "zz" and Col2 == "yy's"')
python выдает синтаксическую ошибку. Я рассматривал возможность просто удалить апостроф из строки, но это имя местоположения, и было бы правильнее сохранить его. Как я могу это исправить / что я могу использовать вместо этого?
Ответ №1:
Ваша проблема в том, что python интерпретирует апостроф как специальный символ. Следовательно, решение состоит в том, чтобы заключить строку запроса в тройные кавычки, например, следующим образом:
df.query('''Col1 == "zz" and Col2 == "yy's"''')
Ответ №2:
Вы можете сделать это так:
df.query('Col1 == "zz" and Col2 == "yy's"')
Ответ №3:
Экранирование специальных символов, подобных предыдущему ответу, является надежным подходом. Другим вариантом было бы использовать многострочные кавычки:
df.query('''Col1 == "zz" and Col2 == "yy's"''')
Комментарии:
1. Почему вы называете их «многострочными кавычками»? Я знаю их как «тройные кавычки». И я знаю, что они позволяют создавать многострочные строки, но вы не используете это здесь.