从 table 数据 python 中删除 nan?

remove nan from table data python?

我正在使用 BS4 从 HTML 网页中拉取 table 并尝试将其添加到 pandas 数据框,但是当我拉取它时它非常草率而且我如果有人可以提供帮助,似乎无法正确打印它?

网页上只有 1 个 table 可用,这是我正在使用的代码。以及它的作用。

soup = BeautifulSoup(driver.page_source,'html.parser')
df = pd.read_html(str(soup))
print (df)

结果:

[   Unnamed: 0    Student Number     Student Name    Placement Date
0         NaN      20808456          Sandy Gurlow    01/13/2023 
1         NaN            NaN                NaN         NaN]

但我尝试使用:

df.dropna(inplace=True)

我得到错误代码:

AttributeError: 'list' object has no attribute 'dropna'

pandas.read_html returns 一个 list 数据帧,其中包含在输入中找到的 table 个数据帧。

您需要使用:

df = pd.read_html(driver.page_source)[0]

或者,在没有 table 的情况下避免 IndexError:

l = pd.read_html(driver.page_source)
if l:
    df = l[0]
else:
    print('no table found')