首页 > 解决方案 > KeyError 排序数据框 - 无法识别列名/索引

问题描述

我是 Python 初学者。我创建了一个脚本来登录网站并从表中创建一个数据框。最终,这个数据框将被发送到 MS Excel 工作簿,但我需要先对其进行正确排序。

我的问题是对数据框进行排序。我想按其中一列按降序对数据框进行排序。我得到一个 KeyError。由于某种原因,未找到列名。

这是我正在使用的代码:

from bs4 import BeautifulSoup
import pandas as pd
from selenium import webdriver
DRIVER_PATH = '<PATH TO DRIVER>'
from selenium.webdriver import chrome
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome(executable_path='<PATH TO DRIVER>')

#open Report Website 
driver.get('<URL OF LOGIN PAGE')

#Login to Report Website
element = driver.find_element_by_id('txtUID')
element.click()
element.clear()
element.send_keys('<MY USERNAME>')
element = driver.find_element_by_id('txtPWD')
element.click()
element.clear()
element.send_keys('<MY PASSWORD>')
import time
time.sleep(2)
element = driver.find_element_by_id('Send')
element.click()

#Navigate to Report Page
driver.get('<URL TO REPORT PAGE>')

#create df
html = driver.page_source
soup = BeautifulSoup(html)
table = soup.find_all('table')[1]
df = pd.read_html(str(table))[0]
sorted_df = df.sort_values(by='Pct Of Widgets w/ Green Label')

除了尝试按列名排序之外,我还尝试使用以下代码按列号排序:

sorted_df = df.sort_values(by='8')

但我得到相同的 KeyError。这似乎是一件很简单的事情,我不明白为什么没有找到列引用。

我的具体问题是 - 按其中一列按降序对数据框进行排序的最简单方法是什么?

标签: pythonpython-3.xpandasdataframe

解决方案


推荐阅读