我有一个数据系列'rpt_date':
>>> rpt_date
STK_ID
000002 [u'20060331', u'20060630']
000005 [u'20061231', u'20070331', u'20070630']
>>> type(rpt_date)
<class 'pandas.core.series.Series'>
>>>
如何通过以下方式创建multiIndex对象(pandas.core.index.MultiIndex):
'my_index = gen_index_by_series (rpt_date)'
'my_index'
看起来像:
>>> my_index
MultiIndex
[('000002', '20060331') ('000002', '20060630') ('000005', '20061231')
('000005', '20070331') ('000005', '20070630')]
>>> type(my_index)
<class 'pandas.core.index.MultiIndex'>
>>>
那么如何写'gen_index_by_series(series)'
?
答案 0 :(得分:1)
要将第一个元素与另一个元素相关联,您可以这样使用itertools.repeat
和zip
:
>>> import itertools as it
>>> L = [['000002', [u'20060331', u'20060630']],
... ['000005', [u'20061231', u'20070331', u'20070630']]]
>>> couples = [zip(it.repeat(key), rest) for key, rest in L]
>>> couples
[[('000002', u'20060331'), ('000002', u'20060630')],
[('000005', u'20061231'), ('000005', u'20070331'), ('000005', u'20070630')]]
从L
对象获取Series
之类的列表应该不会太难。
创建MultiIndex
我相信你要使用from_tuples
方法:
MultiIndex.from_tuples(sum(couples, []), names=('first', 'second'))
由于我不是熊猫用户,我对剩余的任务无能为力,即使它们可能很容易。这是以正确的方式迭代系列的问题。