ValueError:传递了5列,传递的数据有9列

2024-10-03 00:22:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图提取这个wikipedia link中的表,用于我正在尝试的一个顶点项目

不幸的是,我遇到了以下错误:

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)

Tags: columnstextinfourldfinformationtablefind
1条回答
网友
1楼 · 发布于 2024-10-03 00:22:26

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)

相关问题 更多 >