Зачистка таблицы википедии до фрейма данных панд - PullRequest
0 голосов
/ 26 февраля 2019

Мне нужно скрести таблицу википедии до фрейма данных pandas и создать три столбца: PostalCode, Borough и Neighborhoods.

https://en.wikipedia.org/wiki/List_of_postal_codes_of_Canada:_M

Вот код, который я использовал:

import requests
website_url = requests.get('https://en.wikipedia.org/wiki/List_of_postal_codes_of_Canada:_M').text
from bs4 import BeautifulSoup
soup = BeautifulSoup(website_url,'lxml')
print(soup.prettify())

My_table = soup.find('table',{'class':'wikitable sortable'})
My_table

links = My_table.findAll('a')
links

Neighbourhood = [ ]

for link in links:
    Neighbourhood.append(link.get('title'))

print (Neighbourhood)

import pandas as pd

df = pd.DataFrame ([]) df ['PostalCode', 'Borough', 'Neighborhood'] = Соседство

df

И этовозвращает:

(PostalCode, Borough, Neighborhood)

0 Северный Йорк 1 Парквудс 2 Северный Йорк 3 Виктория Вилладж 4 Центр города Торонто 5 Харборфронт (Торонто) 6 Центр города Торонто 7 Риджент-парк 8 Северный Йорк

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

Спасибо

Ответы [ 3 ]

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

У вас есть две небольшие ошибки:

df = pd.dataframe() должно быть df = pd.DataFrame([])

Вы также ошиблись Neighborhoods как Neighbourhoods во второй раз.

Выможет также потребоваться изменить soup = BeautifulSoup(website_url,'lxml') на soup = BeautifulSoup(website_url,'xml'), но мы не сможем вам помочь, не зная вашего точного сообщения об ошибке.

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

Вместо использования

df = pd.dataframe()
df['Neighbourhoods'] = Neighbourhoods

Вы можете использовать

df['Neighbourhoods'] = pd.Series(Neighbourhoods)

Это решит вашу ошибку и добавит новые столбцы аналогично, используя pd.Series (listname), или вы можете дать списоксписки, содержащие Индекс, Район и Соседства, использующие этот код

df = pd.Dataframe(list_of_lists)
0 голосов
/ 26 февраля 2019

Введите сообщение об ошибке.Глядя на это, сначала у вас есть df ['Соседства'] = Соседства , где ваш список имеет название Соседства .

...