Python Dictionary迭代替代方法?

时间:2016-08-01 01:42:29

标签: python dictionary

我从其他帖子中了解到,你可以遇到在字典上迭代的各种问题。我正在尝试根据键修改其中一列,但它只需要执行上一次操作的值。

D={}
for i in range(len(countries['Country'])):
    D["output_fwd_%s" % (countries['Country'][i])]=input_fwd

以上工作正常,我现在拥有所有国家/地区的密钥,这些国家/地区的数据与input_fwd相同。我在国家/地区有12个条目

countries.head()
Out[140]: 
       Country  LHS_BumpFactor  RHS_BumpFactor
0        Japan               1               1
1  South Korea               1               1
2    Singapore               1               1
3     HongKong               1               1
4       Taiwan               1               1

现在,我想更改每个新创建的键中的一列

for i in range(len(countries['Country'])):
    D['output_fwd_%s' % (countries['Country'][i])['Country']=countries['Country'][i]

上述内容无法按预期工作,并且所有键在Country列中具有相同的值(等于countries['Country'][11]

但是,D['output_fwd_%s' % (countries['Country'][2])]['Country']=countries['Country'][2]单独有效,但如果我再次执行其中两项:

D['output_fwd_%s' % (countries['Country'][1])]['Country']=countries['Country'][1]
D['output_fwd_%s' % (countries['Country'][2])]['Country']=countries['Country'][2]

以上两者的国家/地区值均为countries['Country'][2])

input_fwd.head()
Out[155]: 
      CCY abc def       pqr        xyz    Country
0  USDINR    AAA    1m  0.000000  0.000000e+00  Indonesia
1  USDINR    AAA    2m  0.000002  6.000000e-07  Indonesia
2  USDINR    AAA    3m  0.000005  2.200000e-06  Indonesia
3  USDINR    AAA    4m  0.000009  6.100000e-06  Indonesia
4  USDINR    AAA    5m  0.000014  6.100000e-06  Indonesia

实现这一目标的智能方法是什么?我稍后想要将所有上述键中的值连接成一个大型数据帧。

谢谢vm

0 个答案:

没有答案