我正在从以下网站抓取数据:https://en.wikipedia.org/wiki/List_of_postal_codes_of_Canada:_M。使用BeautifulSoup,并且必须以表格格式将其显示为三列:邮政编码,自治市镇,邻居。我想将抓取列表从列表转换为数据框,以便删除一些行并对该数据框做进一步的处理。
获取以下错误消息:
下面是代码:
import pandas as pd
import numpy as np
import requests
from tabulate import tabulate
from bs4 import BeautifulSoup
url = requests.get("https://en.wikipedia.org/wiki/List_of_postal_codes_of_Canada:_M")
soup = BeautifulSoup(url.content,'lxml')
print(soup.prettify())
table = soup.find_all('table')[0]
df = pd.read_html(str(table))
df1 = pd.DataFrame.from_items(df)
答案 0 :(得分:1)
直接在页面上使用内置的read_html
熊猫可以节省大量时间和精力
df=pd.read_html('https://en.wikipedia.org/wiki/List_of_postal_codes_of_Canada:_M')[0]
df.head()
0 1 2
0 Postcode Borough Neighbourhood
1 M1A Not assigned Not assigned
2 M2A Not assigned Not assigned
3 M3A North York Parkwoods
4 M4A North York Victoria Village
请注意,read_html
本身将返回在页面上找到的所有表的列表作为数据框,因此将其索引以获取数据框的[0]
元素。
我留给您根据需要进行调整以修复列标题