2017-01-12 13 views
0

私はMultiIndexでDataFrameにしたいと思っています。 辞書である:Python Pandas:MultiIndexとDictでDataFrameを構築する

dikt = {'bloomberg': Timestamp('2009-01-26 10:00:00'), 
'investingcom': Timestamp('2009-01-01 09:00:00')} 

Iは、以下のようにマルチインデックスを構築:

MI= MultiIndex(levels=[['Existing Home Sales MoM'], ['investingcom', 'bloomberg']], 
      labels=[[0, 0], [0, 1]], 
      names=['indicator', 'source']) 

そしてなどDATAFRAME:

df = pd.DataFrame(index = MI, columns=["datetime"],data =np.full((2,1),np.NaN)) 

そして最後に、私はに格納されたデータとDFを埋めますそのようなもの:

for key in ['indicator', 'source']: 
    df.loc[('Existing Home Sales MoM',key), "datetime"] = dikt[key] 

と期待される結果を得る:

enter image description here

をしかしよう

df = pd.DataFrame(index = MI, columns=["datetime"],data =dikt) 

ようなDFの建設に直接diktを渡すことによって、そうするのがより簡潔な方法があるでしょう最後の2つのステップを1つにまとめますか?

答えて

2

あなたはfrom_dictを使用して辞書からdatframeを作成することができます。

pd.DataFrame.from_dict(dikt, orient='index') 

           0 
bloomberg 2009-01-26 10:00:00 
investingcom 2009-01-01 09:00:00 

あなたがチェーンの列とインデックスの定義を取得することができますが、1つのステップで後にしている結果:

pd.DataFrame.from_dict(dikt, orient='index') \ 
      .rename(columns={0: 'datetime'}) \ 
      .set_index(MI) 
関連する問題