Итеративно создавать фреймы данных с пандами read_html - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь очистить веб-данные, создав 30 фреймов данных. Следующий код не работает:

#import time & pandas
import time
import pandas as pd
franchises = {'atl':'ATL', 'bos':'BOS', 'brk':'BRK', 'chi':'CHI', 'cho':'CHO', 'cle':'CLE', 'dal':'DAL', 'den':'DEN', 'det':'DET', 'gsw':'GSW', 'hou':'HOU', 'ind':'IND', 'lac':'LAC', 'lal':'LAL', 'mem':'MEM', 'mia':'MIA', 'mil':'MIL', 'min':'MIN', 'nop':'NOP', 'nyk':'NYK', 'okc':'OKC', 'orl':'ORL', 'phi':'PHI', 'pho':'PHO', 'por':'POR', 'sac':'SAC', 'sas':'SAS', 'tor':'TOR', 'uta':'UTA', 'was':'WAS'}

#set up custom function to scrape contract dataframes from BB-Ref
def dfscrape(tm_nm):
    url = 'https://www.basketball-reference.com/contracts/' + franchises[tm_nm] + '.html'

    contracts = pd.read_html(url)[0]
    time.sleep(1)
    return contracts

dfscrape(tm_nm = 'atl')

Код для назначения URL работает. Однако фрейм данных 'контракты' не всегда создается, когда я запускаю dfscrape (tm_nm = 'atl'). Кроме того, я хотел бы изменить имя «контрактов» для каждого экземпляра функции, чтобы у меня было 30 фреймов данных.

Должен ли я использовать цикл for? Я не могу понять, как итеративно присваивать новые имена фреймам данных.

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