在熊猫中使用多索引获取错误

时间:2018-08-24 09:18:27

标签: python pandas

我试图了解多级索引。我遵循了here中的示例。最初,这段代码按预期运行

arrays = [[1, 1, 2, 2], ['red', 'blue', 'red', 'blue']]
pd.MultiIndex.from_arrays(arrays, names=('number', 'color'))

但是突然得到这个奇怪的错误。完整的追溯如下。

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-556-786596af3d44> in <module>()
      1 arrays = [[1, 1, 2, 2], ['red', 'blue', 'red', 'blue']]
----> 2 pd.MultiIndex.from_arrays(arrays, names=('number', 'color'))

~/anaconda3/lib/python3.6/site-packages/pandas/core/indexes/multi.py in from_arrays(cls, arrays, sortorder, names)
   1303 
   1304         return MultiIndex(levels=levels, labels=labels, sortorder=sortorder,
-> 1305                           names=names, verify_integrity=False)
   1306 
   1307     @classmethod

~/anaconda3/lib/python3.6/site-packages/pandas/core/indexes/multi.py in __new__(cls, levels, labels, sortorder, names, dtype, copy, name, verify_integrity, _set_identity)
    225 
    226         # we've already validated levels and labels, so shortcut here
--> 227         result._set_levels(levels, copy=copy, validate=False)
    228         result._set_labels(labels, copy=copy, validate=False)
    229 

~/anaconda3/lib/python3.6/site-packages/pandas/core/indexes/multi.py in _set_levels(self, levels, level, copy, validate, verify_integrity)
    313             self._verify_integrity(levels=new_levels)
    314 
--> 315         names = self.names
    316         self._levels = new_levels
    317         if any(names):

~/anaconda3/lib/python3.6/site-packages/pandas/core/indexes/multi.py in _get_names(self)
    632 
    633     def _get_names(self):
--> 634         return FrozenList(level.name for level in self.levels)
    635 
    636     def _set_names(self, names, level=None, validate=True):

~/anaconda3/lib/python3.6/site-packages/pandas/core/indexes/multi.py in <genexpr>(.0)
    632 
    633     def _get_names(self):
--> 634         return FrozenList(level.name for level in self.levels)
    635 
    636     def _set_names(self, names, level=None, validate=True):

AttributeError: 'list' object has no attribute 'name'

您能指导我怎么做吗?任何帮助表示赞赏。谢谢。

0 个答案:

没有答案