Панды находят данные с помощью функции loc, имеющей специальные символы

#python #pandas #dataframe #pandas-loc

Вопрос:

Я пытаюсь найти данные в моем фрейме данных, которые не включают эту строку [] В моем наборе данных, у меня в столбце есть теги этих значений:

введите описание изображения здесь

Я использую следующий код, но он работает не так, как я ожидаю

 conversion_rate = deals.loc[(deals["businessCaseType_value"] =='Sale LiteScope') amp; (deals["tags"] != "[]]")
 

Я использую аналогичный код в другом месте проекта, и он работает просто отлично

 hit_rate = len(deals.loc[(deals["businessCaseType_value"]=='Sale LiteScope') amp; (deals["status"]=='E_WIN')].index)
 

Связано ли это со специальными символами []?

Комментарии:

1. Вместо (deals["tags"] != "[]]") того, что ты имел в виду (deals["tags"] != "[]") ? Кроме того, вы уверены, что «теги» — это столбец строк, а не списки?

2. Вы правы, теги столбцов-это список 🙂

Ответ №1:

Я добавил

 deals.tags =deals.tags.apply(lambda y: np.nan if len(y)==0 else y)
 

чтобы преобразовать все пустые строки в NaN, а затем обновить мой код

 conversion_rate = deals.loc[(deals["businessCaseType_value"] =='Sale LiteScope') amp; deals["tags"].notnull()]
 

Большое спасибо