2015-10-30 17 views
0

Я пытаюсь получить все данные из таблицы баскетбольной ссылки (http://www.basketball-reference.com/leagues/NBA_2015_per_poss.html). Когда я использую XPath для получения данных, он входит в один длинный список. У меня есть метод «кусков», который будет делить список на несколько списков, но, поскольку в таблице есть пустые ячейки, метод выходит и делит список неправильно. Есть ли способ справиться с этим?Работа с пустыми ячейками с веб-страницы

ответ

1

Мое предложение: используйте pandas.DataFrame. Он может загружать данные из многих источников, включая HTML.

Вы можете легко обрабатывать пустые ячейки с помощью метода fillna.

Рассмотрим следующий пример:

import pandas as pd 

# read_excel returns list of dataframes. 
# In this case we know there is only one in the page 
df = pd.read_html('http://www.basketball-reference.com/leagues/NBA_2015_per_poss.html', 
        attrs={'id': 'per_poss'})[0] 

# the headers repeat every 20 lines, filtering them out 
df = df[df['Rk'] != 'Rk'] 

# inserting 0 to empty cells 
# could also use inplace=True kwarg instead of reassigning, or pass a 
# dictionary to use different value for each column 
df = df.fillna(0) 
+0

хороший подход в самом деле! – SIslam

+0

В таблицу не входят «пустые» ячейки, ячейки просто не отображаются. например четвертая строка на сайте имеет 0, 0, затем пробел для 3P, 3PA, 3P%. Это входит в таблицу как 0, 0, 4.5 (следующее значение после 3P%). И я получаю сообщение об ошибке «html5lib не найден, пожалуйста, установите его», даже если у меня установлен html5lib при запуске вашего кода –

Смежные вопросы