ValueError: 5 переданных столбцов, переданные данные имеют 9 столбцов - PullRequest
1 голос
/ 14 апреля 2020

Я пытаюсь извлечь таблицу в этой ссылке в Википедии для проекта capstone, который я пытаюсь сделать.

К сожалению, я получаю эту ошибку:

ValueError: 5 columns passed, passed data had 9 columns

Код:

url =requests.get('https://en.wikipedia.org/wiki/List_of_Glasgow_Subway_stations').text

soup = BeautifulSoup(url, 'lxml')
print(soup.prettify())

arrond_table = soup.find('table', class_='wikitable sortable')
arrond_table_rows = arrond_table.find_all('tr')


information = []
for row in arrond_table_rows:
    info = row.text.split('\n')[1:-1]
    information.append(info)

del information[0][1::2]

information


arrond_df = pd.DataFrame(information[2:],columns = information[0])
arrond_df.head(10)

1 Ответ

0 голосов
/ 14 апреля 2020

pd.DataFrame() требует одинакового количества столбцов между данными и именами столбцов, в противном случае будет выброшено ValueError.


Если обратиться к вашей проблеме сейчас,

arrond_df = pd.DataFrame(information[2:],columns = information[0])

ошибка ясно указывает, что ваши данные (information[2:]) имеют всего 9 столбцов, но имена столбцов, которые вы предоставляете (columns=information[0]) - только 5.

Убедитесь, что вы указали достаточно имен столбцов для своих данных.

Другими словами, должно применяться следующее условие

information[2:].shape[1] == len(columns)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...