我试图了解多级索引。我遵循了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'
您能指导我怎么做吗?任何帮助表示赞赏。谢谢。