Python
1 pop={'Nevada':{2001:2.4,2002:2.9}, 2 ...: 'Ohio':{2000:1.5,2001:1.7,2002:3.6}}
ネストしたディクショナリをデータフレームに渡し、pandasは外部のディクショナリのキーを列のインデックスとして解釈し、内側のインデックスのキーを行のインデックスとして解釈する
Python
1 frame3=pd.DataFrame(pop) 2In [8]: frame3 3Out[8]: 4 Nevada Ohio 52000 NaN 1.5 62001 2.4 1.7 72002 2.9 3.6
データフレームのインデックスを再指定したいが、エラーがおきる
Python
1In [10]: pd.DataFrame(pop,index=[2001,2002,2003]) 2--------------------------------------------------------------------------- 3AttributeError Traceback (most recent call last) 4<ipython-input-10-c1bf933df4c1> in <module> 5----> 1 pd.DataFrame(pop,index=[2001,2002,2003]) 6 7~\Anaconda3\lib\site-packages\pandas\core\frame.py in __init__(self, data, index, columns, dtype, copy) 8 346 dtype=dtype, copy=copy) 9 347 elif isinstance(data, dict): 10--> 348 mgr = self._init_dict(data, index, columns, dtype=dtype) 11 349 elif isinstance(data, ma.MaskedArray): 12 350 import numpy.ma.mrecords as mrecords 13 14~\Anaconda3\lib\site-packages\pandas\core\frame.py in _init_dict(self, data, index, columns, dtype) 15 457 arrays = [data[k] for k in keys] 16 458 17--> 459 return _arrays_to_mgr(arrays, data_names, index, columns, dtype=dtype) 18 460 19 461 def _init_ndarray(self, values, index, columns, dtype=None, copy=False): 20 21~\Anaconda3\lib\site-packages\pandas\core\frame.py in _arrays_to_mgr(arrays, arr_names, index, columns, dtype) 22 7357 23 7358 # don't force copy because getting jammed in an ndarray anyway 24-> 7359 arrays = _homogenize(arrays, index, dtype) 25 7360 26 7361 # from BlockManager perspective 27 28~\Anaconda3\lib\site-packages\pandas\core\frame.py in _homogenize(data, index, dtype) 29 7659 if isinstance(v, dict): 30 7660 if oindex is None: 31-> 7661 oindex = index.astype('O') 32 7662 33 7663 if isinstance(index, (DatetimeIndex, TimedeltaIndex)): 34 35AttributeError: 'list' object has no attribute 'astype'
回答1件
あなたの回答
tips
プレビュー