我有一个名为pair_candidates的字典。它是各种股票的共同整合。我跑的时候:
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 :(得分: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
如果是,你可以这样做:
import pandas as pd
print(pd.DataFrame(data).T)
输出将是
s1 s2 s3 s4
key1 123.0 1234.0 NaN NaN
key2 NaN NaN 123.0 1234.0
答案 1 :(得分:0)
一个请求,请同时发布样本数据。 我已经解决了您的问题,假设以下格式
pair_candidates = {'GOOG':
{
'Equity(26578 [GOOG_L])':0.99474625176,
'Equity(46631 [GOOG])':1.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
我得到的输出是:
df
Equity(46631 [GOOG]) Equity(26578 [GOOG_L])
GOOG 1.0 0.994746
我希望这是你想要的解决方案