pandas 熊猫的关键错误

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/27656824/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-13 22:47:33  来源:igfitidea点击:

Key Error from Pandas

pythonpandas

提问by Rajiv

I have the following code in python.

我在python中有以下代码。

 d1=pd.read_excel("data1.xlsx",sheetname=0, index_col = "Time", parse_date=True)
 d1=d1.sort_index()
 for val in d1.columns:
      start_his=d1[str(val)]

The data1.xlsx contains

data1.xlsx 包含

Time        Start   High    Low     End     5
05/12/2014  28,000  31,500  27,400  29,900  29,740.00
28/11/2014  29,450  29,450  27,950  28,250  30,190.00
21/11/2014  30,500  30,500  28,100  29,300  30,840.00
14/11/2014  31,750  31,750  29,600  29,900  31,200.00
07/11/2014  32,250  32,750  30,500  31,350  31,620.00
31/10/2014  31,800  33,000  31,300  32,150  32,230.00
24/10/2014  31,300  32,750  30,800  31,500  32,680.00
17/10/2014  32,000  32,150  30,550  31,100  33,270.00
10/10/2014  34,550  34,550  32,000  32,000  33,920.00
02/10/2014  35,000  35,000  32,400  34,400  34,560.00
26/09/2014  34,600  35,000  33,600  34,400  34,770.00
19/09/2014  34,350  34,750  32,200  34,450  35,070.00

I got the Output for the first 4 columns(Start, High, Low & End) but 5th Columns shows key error. If I change the numeric '5' to any other value (i.e., Alpha numeric) it works correctly but it is not accepting numbers in column header. Please help to solve this error.

我得到了前 4 列(开始、高、低和结束)的输出,但第 5 列显示了关键错误。如果我将数字“5”更改为任何其他值(即字母数字),它可以正常工作,但它不接受列标题中的数字。请帮助解决此错误。

and i got the error is

我得到的错误是

Traceback (most recent call last):
  File "ARIMA & Byesian.py", line 94, in <module>
    start_his=d1[str(val)]
  File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", line 1780, in __getitem__
    return self._getitem_column(key)
  File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", line 1787, in _getitem_column
    return self._get_item_cache(key)
  File "/usr/local/lib/python2.7/dist-packages/pandas/core/generic.py", line 1068, in _get_item_cache
    values = self._data.get(item)
  File "/usr/local/lib/python2.7/dist-packages/pandas/core/internals.py", line 2849, in get
    loc = self.items.get_loc(item)
  File "/usr/local/lib/python2.7/dist-packages/pandas/core/index.py", line 1402, in get_loc
    return self._engine.get_loc(_values_from_object(key))
  File "pandas/index.pyx", line 134, in pandas.index.IndexEngine.get_loc (pandas/index.c:3812)
  File "pandas/index.pyx", line 154, in pandas.index.IndexEngine.get_loc (pandas/index.c:3692)
  File "pandas/hashtable.pyx", line 696, in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12299)
  File "pandas/hashtable.pyx", line 704, in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12250)
KeyError: '5'

回答by Bhargav Rao

You are using str(val)and 5will be made '5'. Use valdirectly as in:

您正在使用str(val)5将进行'5'val直接使用如下:

d1=pd.read_excel("data1.xlsx",sheetname=0, index_col = "Time", parse_date=True)
d1=d1.sort_index()
for val in d1.columns:
   start_his=d1[val]