【发布时间】:2021-12-28 23:06:25
【问题描述】:
我有一个表格中的固定数据数组结构 我用表格保存了html 现在我试图获取 html 文件中的表格并将其放入 csv 文件中以组织数据(使用我在这里看到的代码)并且我不断收到错误
这是代码(取自本站)
# Importing the required modules
import os
import sys
import pandas as pd
from bs4 import BeautifulSoup
path = 'file location' + 'file.html'
# empty list
data = []
# for getting the header from
# the HTML file
list_header = []
soup = BeautifulSoup(open(path),'html.parser')
header = soup.find_all("table")[0].find("tr")
for items in header:
try:
list_header.append(items.get_text())
except:
continue
# for getting the data
HTML_data = soup.find_all("table")[0].find_all("tr")[1:]
for element in HTML_data:
sub_data = []
for sub_element in element:
try:
sub_data.append(sub_element.get_text())
except:
continue
data.append(sub_data)
# Storing the data into Pandas
# DataFrame
dataFrame = pd.DataFrame(data = data, columns = list_header)
# Converting Pandas DataFrame
# into CSV file
dataFrame.to_csv('Geeks.csv')
但得到这个错误
File, line 38, in <module>
dataFrame = pd.DataFrame(data = data, columns = list_header)
File, line 509, in __init__
arrays, columns = to_arrays(data, columns, dtype=dtype)
File, line 524, in to_arrays
return _list_to_arrays(data, columns, coerce_float=coerce_float, dtype=dtype)
File, line 567, in _list_to_arrays
raise ValueError(e) from e
ValueError: 1 columns passed, passed data had 7 columns
我做错了什么?
【问题讨论】:
-
刚刚读取错误,
ValueError: 1 columns passed, passed data had 7 columns,看起来您的标题有 1 个元素,但您的数据每行有 7 个元素;或者也许是相反的方式。打印标题和第一行,看看列是否匹配。
标签: pandas dataframe csv beautifulsoup