Pandas层次索引 - 不适用于数据帧?

时间:2013-12-05 14:28:59

标签: python indexing pandas

我在解决DataFrame中的值时遇到了问题,但我似乎对Series对象没有任何问题。

>>> df=DataFrame([0.5,1.5,2.5,3.5,4.5], index=[['a','a','b','b','b'],[1,2,1,2,3]])
>>> series=Series([0.5,1.5,2.5,3.5,4.5], index=[['a','a','b','b','b'],[1,2,1,2,3]])
>>> series['a']
1    0.5
2    1.5
dtype: float64
>>> df['a']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Anaconda\lib\site-packages\pandas\core\frame.py", line 2003, in __getitem__
    return self._get_item_cache(key)
  File "C:\Anaconda\lib\site-packages\pandas\core\generic.py", line 667, in _get_item_cache
values = self._data.get(item)
  File "C:\Anaconda\lib\site-packages\pandas\core\internals.py", line 1655, in get
_, block = self._find_block(item)
File "C:\Anaconda\lib\site-packages\pandas\core\internals.py", line 1935, in _find_block
self._check_have(item)
File "C:\Anaconda\lib\site-packages\pandas\core\internals.py", line 1942, in _check_have
raise KeyError('no item named %s' % com.pprint_thing(item))
KeyError: u'no item named a'

我绝对会误解某些事情,如果有人能帮助我,我将非常感激!

1 个答案:

答案 0 :(得分:4)

您正在尝试选择一个列,并且确实没有名为“a”的列。请改为df.loc['a']

我建议查看基本的索引文档:http://pandas.pydata.org/pandas-docs/stable/indexing.html#basics
总结:

  • series[label]选择索引为label
  • 的系列元素
  • dataframe[label]选择名称为label
  • 的列