私は美しいスープを使ってhtmlテーブルを掻き集め、パンダにそれをインポートしようとしています - http://www.baseball-reference.com/teams/NYM/2017.shtml - "チームバッティング"テーブル。テーブルを検索美しいスープでhtmlテーブルをスクラップしてパンダに
は問題ありません:データの行を見つける
table = soup.find('div', attrs={'class': 'overthrow table_container'})
table_body = table.find('tbody')
は、いずれかの問題ではありません。
for i in table.findAll('tr')[2]: #increase to 3 to get next row in table...
print(i.get_text())
そして私も、ヘッダーの名前を見つけることができます。
table_head = table.find('thead')
for i in table_head.findAll('th'):
print(i.get_text())
今、データフレームにすべてをまとめるのに問題があります。これまで私がこれまで持っていたことは次のとおりです。
header = []
for th in table_head.findAll('th'):
key = th.get_text()
header.append(key)
row= []
for tr in table.findAll('tr')[2]:
value = tr.get_text()
row.append(value)
od = OrderedDict(zip(head, row))
df = pd.DataFrame(d1, index=[0])
これは、一度に1つの行に対してのみ機能します。私の質問は、どのように私は同時にテーブルのすべての行のためにこれを行うことができますか?
偉大な答えをありがとう。この行には「[row]」という名前がありますか?table_row = table.findAll( 'tr')[row] ---以前のようにこのように使用されたことはありませんでした。 – e9e9s
大歓迎です。この場合のインデックスだけです。 '' table_row = table.findAll( 'tr')[0] 'または' table_row = table.findAll( 'tr')[1] ' – bernie
に相当します。この行から' [row] 'が除外され、 'table_row'を反復することができないでしょうか? – e9e9s