繁体   English   中英

熊猫DataFrame KeyError

[英]Pandas DataFrame KeyError

首先,这是代码:

import pandas as pd

headers = ["Category", "Brand", "Product_Name", "Shipping", "Price"]

xl = pd.ExcelFile("C:\\Users\\*myusername*\\Desktop\\products.xlsx")
df = xl.parse("products")
print(df)

df = df.sort_values(by=headers[4], axis='columns', na_position='last')

writer = pd.ExcelWriter('C:\\Users\\*myusername*\\Desktop\\output.xlsx')
df.to_excel(writer, sheet_name="Sheet1", columns=headers, index=False)
writer.save()

print("Done")

我正在尝试做的是整理一些我从Newegg收集的数据,作为一种练习项目。 我打算在这里使用此代码,并将其扩展为可以对数据进行各种处理,但我认为我会很容易开始,只需按Price列对它们进行排序即可。

当我运行上面的代码时,它引发以下错误:

  File "<input>", line 9, in <module>
  File "C:\Users\mmiller3\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\frame.py", line 4421, in sort_values
    stacklevel=stacklevel)
  File "C:\Users\mmiller3\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\generic.py", line 1382, in _get_label_or_level_values
    raise KeyError(key)
KeyError: 'Price'

当我打印(df)时,从解析的xl表创建它之后,它会立即正确显示5个标头以及其中包含的所有数据。 标头“价格”肯定存在。

print(df)输出如下:

            Category           Brand   ...     Shipping Costs   Price 
0      Desktop Memory         G.SKILL   ...      Free Shipping  199.99 
1      Desktop Memory         G.SKILL   ...      Free Shipping  143.99

那只是输出的一小段,持续了147行。

我尝试了很多事情,包括用更直接的“价格”替换“ headers [4]”,我尝试为该列指示“ E”,而不是使用标题。

在这一点上,我很困惑,并且我发现的关于此特定问题的唯一其他参考文献是一个简单的语法错误,但我没有犯同样的错误。

你们能为我提供的任何帮助将不胜感激。

你应该能够做

df = xl.parse("products", names = headers)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM