Как я могу фильтровать значения столбцов, которые начинаются с одной из трех строк, которые я идентифицирую?

#python #list #startswith

#python #Список #начинается с

Вопрос:

У меня есть столбец с разными значениями типа продукта, такого как книги, телевизор и т.д. Как я могу фильтровать значения столбца, который начинается с книг или фильмов?

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

 #Create a list of values
filtering_list=['Books','Movies']
df=df[df.categories.str.startswith(filtering_list,na=False)]
  

Ответ №1:

Смотрите:https://www.geeksforgeeks.org/python-pandas-series-str-startswith /

str.startswith(str,na) кажется, что в качестве первого аргумента используется строка, а не список, поэтому вам следует фильтровать как книги, так и фильмы, а затем объединять списки.

Что-то вроде blow должно сработать (не проверено, подразумевается как псевдокод)

 result = []
for filter in filtering_list:
  result.append(*df[df.categories.str.startswith(filter,na=False)]) 
  

(Обратите внимание на звездочку, чтобы распаковать список.)