Python字典迭代替代方法?

2024-05-16 19:16:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我从其他的帖子中知道,你在反复阅读字典时会遇到各种各样的问题。我正试图基于键修改其中一列,但它只接受上次执行的操作的值。你知道吗

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

上面的工作很好,我现在有所有国家的密钥,它们的数据与input\u 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


Tags: 数据inforinputoutputlenrange国家