0

私はデータシリーズ '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)'ですか?

4

1 に答える 1

1

itertools.repeat最初の要素を他の要素に関連付けるには、次のように andを使用できます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

MultiIndexI beliveを作成するには、次のfrom_tuplesメソッドを使用する必要があります。

MultiIndex.from_tuples(sum(couples, []), names=('first', 'second'))

私は pandas のユーザーではないので、残りのタスクはおそらく簡単ですが、あまり役に立ちません。Series を正しい方法で反復することが問題です。

于 2012-09-15T11:27:02.343 に答える