Как добавить несколько столбцов одновременно, используя panda для python - PullRequest
0 голосов
/ 08 марта 2019

В настоящее время я использую python для просмотра веб-страниц трехточечной статистики для каждого игрока NBA и пытаюсь поместить эти данные во фрейм данных. Код ниже - моя попытка добавить значения во фрейм данных. Переменные player, команды, threePointAttempts и threePointPercentage - это списки, содержащие 50 значений. Они пополняются после каждой итерации цикла while, поскольку скрипт перемещается по каждой странице сайта NBA.

while i<10:
soup = BeautifulSoup(d.page_source, 'html.parser').find('table')
headers, [_, *data] = [i.text for i in soup.find_all('th')], [[i.text for i in b.find_all('td')] for b in soup.find_all('tr')]
final_data = [i for i in data if len(i) > 1]

data_attrs = [dict(zip(headers, i)) for i in final_data]
print(data_attrs)

players = [i['PLAYER'] for i in data_attrs]
teams = [i['TEAM'] for i in data_attrs]
threePointAttempts = [i['3PA'] for i in data_attrs]
threePointPercentage = [i['3P%'] for i in data_attrs]


data_df = data_df.append(pd.DataFrame(players, columns=['Player']),ignore_index=True)
data_df = data_df.append(pd.DataFrame(teams, columns=['Team']),ignore_index=True)
data_df = data_df.append(pd.DataFrame(threePointAttempts, columns=['3PA']),ignore_index=True)
data_df = data_df.append(pd.DataFrame(threePointPercentage, columns=['3P%']),ignore_index=True)
data_df = data_df[['Player','Team','3PA','3P%']]

У меня проблема с заполнением фрейма данных следующим образом:

Первый столбец Второй столбец Третий столбец

1 Ответ

0 голосов
/ 08 марта 2019

Попробуйте:

temp_df = pd.DataFrame({'Player': players,
                        'Team': teams,
                        '3PA': threePointAttempts,
                        '3P%': threePointPercentage})

data_df = data_df.append(temp_df, ignore_index=True)

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