簡體   English   中英

Python Pandas:使用MultiIndex和Dict構造一個DataFrame

[英]Python Pandas: Construct a DataFrame with MultiIndex and Dict

我已經決定要變成一個具有MultiIndex的DataFrame。 該字典是:

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

我構造一個MultiIndex,如下所示:

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))

最后,我用存儲在dict中的數據填充df:

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

並獲得預期的結果:

在此處輸入圖片說明

但是通過將dikt直接傳遞到df的構造中,是否會有更簡潔的方法,例如

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

以便將最后兩個步驟合二為一?

您可以使用from_dict從字典創建from_dict

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

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

您可以將列和索引定義鏈接起來,只需一步即可獲得所需的結果:

pd.DataFrame.from_dict(dikt, orient='index') \
            .rename(columns={0: 'datetime'}) \
            .set_index(MI)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM