在数据帧中提取第一项的关键错误

时间:2017-01-28 06:40:40

标签: python python-2.7 pandas

此代码设置来自data的数据字典字典,它本身就是一个数据帧。从文件中读取data

data = pandas.read_csv(QuoteData, usecols=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])

因为data数据帧混合了许多不同的时间帧,所以我将它们分成一个按时间索引的数据帧字典。然后,按照显示的标准对字典中的每个数据帧进行排序。

无论我尝试什么,我都无法访问dodf[k]['underlying_bid']的第一个元素。因此,例如dodf[k]['underlying_bid'][0]适用于第一个数据帧,第二次通过循环崩溃。 0是第一个数据帧列的键,但不是第二个数据帧列的键?

Traceback (most recent call last):
  File "cboelivedata.py", line 481, in <module>
    main()
  File "cboelivedata.py", line 422, in main
    underlyingprice = dodf[k]['underlying_bid'][0]
  File "/home/idf/anaconda2/lib/python2.7/site-packages/pandas/core/series.py", line 583, in __getitem__
    result = self.index.get_value(self, key)
  File "/home/idf/anaconda2/lib/python2.7/site-packages/pandas/indexes/base.py", line 1980, in get_value
    tz=getattr(series.dtype, 'tz', None))
  File "pandas/index.pyx", line 103, in pandas.index.IndexEngine.get_value (pandas/index.c:3332)
  File "pandas/index.pyx", line 111, in pandas.index.IndexEngine.get_value (pandas/index.c:3035)
  File "pandas/index.pyx", line 159, in pandas.index.IndexEngine.get_loc (pandas/index.c:4018)
  File "pandas/hashtable.pyx", line 303, in pandas.hashtable.Int64HashTable.get_item (pandas/hashtable.c:6610)
  File "pandas/hashtable.pyx", line 309, in pandas.hashtable.Int64HashTable.get_item (pandas/hashtable.c:6554)
KeyError: 0

代码片段:

dodf = {name: group for name, group in data.groupby('quote_datetime')}
dodf = collections.OrderedDict(sorted(dodf.items(), key=lambda x: x[0]))#key=operator.itemgetter))

for k in dodf:   
        df = dodf[k].sort_values(['option_type', 'Strike', 'Expiration'], ascending=True)  
        underlyingprice = dodf[k]['underlying_bid'] # **What goes here?**

1 个答案:

答案 0 :(得分:1)

比我想象的容易得多

DODF [k]的[&#39; underlying_bid&#39]。ILOC [0]