私は美味しいスープとネストしたテーブルを使い慣れていないので、私はウィキペディアのテーブルを掻き集める経験を得るようにしています。美味しいスープWikipidiaネストしたテーブル
私はウェブ上の良い例を探しましたが、残念ながら何も見つかりませんでした。
私の目標は、このweb pageの「アメリカの国」という表をパンダで解析することです。私のコードからわかるように、以下の問題があります。
1)すべての列を抽出できません。どうやら私のコードでは、pandas DataFrameですべての列を正しくインポートすることができず、最初の列の下にhtmlテーブルの3番目の列のエントリが書き込まれます。
2)私はテーブルのいくつかの行に表示されますはcolspan =「2」に対処する方法がわかりません。私のパンダDataFrameでは、大都市と大都市が同じときに同じエントリーをしたいと思います。
ここに私のコードです。私が最初の問題を克服しようとしていることに注意してください。
コード:
from urllib.request import urlopen
import pandas as pd
wiki='https://en.wikipedia.org/wiki/List_of_states_and_territories_of_the_United_States'
page = urlopen(wiki)
from bs4 import BeautifulSoup
soup = BeautifulSoup(page)
right_table=soup.find_all('table')[0] # First table
rows = right_table.find_all('tr')[2:]
A=[]
B=[]
C=[]
D=[]
F=[]
for row in rows:
cells = row.findAll('td')
# print(len(cells))
if len(cells)>=11: #Only extract table body not heading
A.append(cells[0].find(text=True))
B.append(cells[1].find(text=True))
C.append(cells[2].find(text=True))
D.append(cells[3].find(text=True))
F.append(cells[4].find(text=True))
df=pd.DataFrame(A,columns=['State'])
df['Capital']=B
df['Largest']=C
df['Statehood']=D
df['Population']=F
df
print(df)
ごsuggestingsを持っていますか? BeautifulSoupの方が良いことを理解する助けとなります。 ありがとうございます。
これらウィキペディアのテーブルがFYI編集した人間ですです。彼らはしばしば混乱していることを意味します。 – pguardiario