Python: Почему .str.contains () возвращает результаты только для 4 из 26 строк? - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь напечатать все строки, у которых есть слово tree в первом столбце (столбец A).

url = "https:www.example.com"
driver = webdriver.Chrome()
driver.get(url)

inputElement = driver.find_element_by_id("txtBusinessName")
inputElement.send_keys("tree")

inputElement.send_keys(Keys.ENTER)

try:
    element = WebDriverWait(driver, 30).until(
        EC.presence_of_element_located((By.ID, "grid_businessList"))
    )
finally:
    html = driver.page_source
    soup = BeautifulSoup(html, "html.parser")
    table = soup.find('table', id="grid_businessList")
    rows = table.findAll("tr")

    columns = [v.text.replace('\xa0',' ') for v in rows[0].find_all('th')]

    df = pd.DataFrame(columns=columns)

    for i in range(1, len(rows)):
        tds = rows[i].find_all('td')

        if len(tds) == 5:
            values = [tds[0].text, tds[1].text, tds[2].text, tds[3].text, tds[4].text, tds[5].text]
        else:
            values = [td.text for td in tds]


            df = df.append(pd.Series(values, index=columns), ignore_index=True)

            biz = df[df['Business Name'].str.contains('tree')]

            print(biz)

Но он находит «tree» только в 4 из строк, хотяего настоящее больше.

Печатается это 11 раз:

Пустой фрейм данных

Столбцы: [A, B, C, D, E, F]

Index: []

Затем выводятся точные результаты для строк 11, 13, 17, 20.

Почему .str.contains не смотрит в столбец A в каждой строке?

1 Ответ

0 голосов
/ 20 февраля 2019

Я нашел свой ответ здесь: Как отфильтровать pandas dataframe по строке? .Мне просто нужно пометить содержимое для re.IGNORECASE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...