python - 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。这似乎是一件很简单的事情,我不明白为什么没有找到列引用。
我的具体问题是 - 按其中一列按降序对数据框进行排序的最简单方法是什么?
解决方案
推荐阅读
- conditional-formatting - Excel 2016:条件格式:如果单元格值在列表中,则突出显示行
- javascript - 使用纯 JavaScript 完成 CSS 转换后运行代码
- html - 如何在抬起手指之前显示按下(:活动)效果?
- windows - 在任务管理器的父进程下分组 PowerShell 作业
- makefile - 在 makefile 中将“/dev/ttyPS1”替换为 \""/dev/ttyPS1\""
- python - elasticsearch“query_string”对具有相同映射的不同字段的意外行为
- python - 为什么我会收到这么糟糕的输入?
- html - 如果文本很短或字符数有限,则 CSS 隐藏按钮
- javascript - 未捕获的类型错误:无法设置未定义的属性“渲染”
- java - 元素周期表中的元素数显示为 0 而不是 118