长度不匹配:预期轴有 5 个元素,新值有 8 个元素

Length mismatch: Expected axis has 5 elements, new values have 8 elements

我正在尝试通过 Web 抓取具有不同部分的同一网页来创建 Dataframe,但是在尝试表示列时,出现此错误:

"Length mismatch: Expected axis has 5 elements, new values have 8 elements"

url='https://money.cnn.com/magazines/fortune/fortune500_archive/full/1955/1.html'

webcontent=urlopen(url)
html_page=webcontent.read()
soup=BeautifulSoup(html_page, "lxml")
table=soup.select("table")[0]
rows= table.select('tr')

table_data=[]
for row in rows:
    td_tag=row.select('td')
    row_values=[value.string for value in td_tag]
    table_data.append(row_values)

data=pd.DataFrame(table_data[1:])
cols=[header.string for header in table.select('th')]
data.columns= cols


data.head()

非常感谢您的帮助!

我认为可能页面内容已更改。
有两个问题:
1. 在 table_data 中,您想要的第一项 ['1', 'General Motors', '9,823.5', '806.0'] 从第 7 项开始
2. 你只需要 [header.string for header in table.select('th')] ['Rank', 'Company', None, None, 'Rank', 'Company', 'Rank', 'Company']

中的最后 4 项
data=pd.DataFrame(table_data[6:])
cols=[header.string for header in table.select('th')][-4:]
data.columns= cols
data.head()

Rank    Company Rank    Company
0   1   General Motors  9,823.5 806.0
1   2   Exxon Mobil 5,661.4 584.8
2   3   U.S. Steel  3,250.4 195.4
3   4   General Electric    2,959.1 212.6
4   5   Esmark  2,510.8 19.1