2017-01-10 11 views
-1

私はpair_candidatesという辞書を持っています。それは様々な株式の共同統合です。私は実行すると:Python Dataframe辞書の新しい列

for key, value in pair_candidates.iteritems(): 
    print key 
    for i, x in value.iteritems(): 
     print i 
     print x 

利回り:

GOOG 
Equity(26578 [GOOG_L]) 
0.99474625176 
Equity(46631 [GOOG]) 
1.0 
NEM 
Equity(154 [AEM]) 
0.986407479901 
Equity(5261 [NEM]) 
1.0 
USB 
Equity(25006 [JPM]) 
0.976828428881 
Equity(25010 [USB]) 
1.0 
CMA 
Equity(1620 [CMA]) 
1.0 
Equity(8399 [ZION]) 
0.982642475515 
Equity(25006 [JPM]) 
0.980413261534 
AMAT 
Equity(337 [AMAT]) 
1.0 
Equity(7671 [TXN]) 
0.978239746926 
Equity(8677 [MCHP]) 
0.978793774219 

私が望む何をしてください、次のようにデータフレームです: enter image description here

+0

'pandas'または' r'を使用していますか?あなたの疑問に疑問を抱かせることはできますか? – jezrael

+0

'pandas'なら' df = pd.DataFrame(pair_candidates) 'を試しますか? – jezrael

答えて

0

を限り私はあなたのポイントを理解しようとして、あなたのデータセットはすべきこれはそうじゃない?

私はそれを印刷するためにあなたのコードしようとした場合
data = {} 
data['key1'] = {'s1' : 123, 's2' : 1234} 
data['key2'] = {'s3' : 123, 's4' : 1234} 

for key,value in data.items(): 
    print(key) 
    for i,x in value.items(): 
     print(i) 
     print(x) 

を私はそうならば、あなたが

key1 
s1 
123 
s2 
1234 
key2 
s3 
123 
s4 
1234 

を説明してきたものへの出力は非常にsimilliar取得、uはちょうど行うことができます。

import pandas as pd 
print(pd.DataFrame(data).T) 

出力wiあなたは

 s1  s2  s3  s4 
key1 123.0 1234.0 NaN  NaN 
key2 NaN  NaN 123.0 1234.0 
0

をリクエストしてください。サンプルデータも投稿してください。 私は

import pandas as pd 

indexes = [] 
for k,v in pair_candidates.iteritems(): 
    indexes.append(k) 

df = pd.DataFrame(index=indexes) 

for key, value in pair_candidates.iteritems(): 
    for sub_dict_key, sub_dict_value in value.iteritems(): 
     df.ix[key,sub_dict_key] = sub_dict_value 

私は取得していますが出力され、データフレームにこの辞書を追加するには、次の形式

pair_candidates = {'GOOG': 
      { 
       'Equity(26578 [GOOG_L])':0.99474625176, 
       'Equity(46631 [GOOG])':1.0 
      } 
     } 

を想定して、あなたの問題を解決しています

df 
     Equity(46631 [GOOG]) Equity(26578 [GOOG_L]) 
GOOG     1.0    0.994746 

Iこれがあなたが望む解決策であることを願ってください。