2016-07-24 3 views
2

Несколько месяцев назад @Romain X. помог мне с этим вопросом:Python ДИКТ к DataFrame панд - уровни

Python dict to DataFrame Pandas

Теперь я пытаюсь сделать то же самое с более глубокими уровнями, здесь является пример:

{u'instruments': [{u'instrument': u'EUR_USD', 
    u'interestRate': {u'EUR': {u'ask': 0.004, u'bid': 0}, 
    u'USD': {u'ask': 0.004, u'bid': 0}}}]} 

Колонна этикетка и ценность моего кадра данных должна быть инструмента, EUR_ask, EUR_bid, USD_ask, USD_bid.

Я попытался это:

pd.DataFrame.from_dict(df).join(pd.DataFrame. from_dict(df['instruments'])).drop('instruments', axis=1)

Спасибо!

+1

Так что, если вы пытались что-то, вы можете показать нам что? –

+0

@Merlin. Яснее, что я хочу сделать сейчас? –

+1

Нет, вы все еще не указали, что вы пробовали, так что это не кодирование. – Merlin

ответ

1

Здесь вы идете,

df = pd.DataFrame.from_dict(d)\ 
.join(pd.DataFrame.from_dict(d['instruments']))\ 
.drop('instruments', axis=1) 

df2 = pd.DataFrame.from_dict(df.interestRate[0]) 
df2 = pd.DataFrame.transpose(df2) 
df2 = df2.reset_index() 
df2.columns.values[0] = 'instrument' 

print (df2) 

    instrument ask bid 
0  EUR 0.004 0.0 
1  USD 0.004 0.0 
+0

Большое спасибо @Jossie Calderon –