[英]Construct MultiIndex pandas DataFrame nested Python dictionary
[英]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.