我创建了一个存储以下信息的数据帧(df),HS1是索引。
{{1}}
现在我想对这个数据帧应用两个ierations:外部由HS1和内部由HS2,以便获得两个字典(已经使用默认值声明),如下所示: 对于欧元:{' 2':20000.00,' 3':0} [键3的默认值为0] 对于美元:{' 2':-36253.84938,' 3':78693.86806}
我使用了itertuple并获得了外部迭代的以下输出:
{{1}}
Pandas(指数=' EUR',HS2 = 3,EffNotional_UnMG = -10082.913813053281)
Pandas(指数=' USD',HS2 = 2,EffNotional_UnMG = -36253.849384403635)
Pandas(指数=' USD',HS2 = 3,EffNotional_UnMG = 78693.868057473315)
可以使用itertuples继续进行内部迭代。
答案 0 :(得分:0)
我认为循环不是必需的,请使用pivot
+ fillna
+ to_dict
:
d = df.pivot('HS2','HS1','EffNotional_UnMG').fillna(0).to_dict()
set_index
+ unstack
+ to_dict
的替代解决方案:
d = df.set_index(['HS2','HS1'])['EffNotional_UnMG'].unstack(fill_value=0).to_dict()
print (d)
{'EUR': {'2': 0.0, '3': -10082.91381}, 'USD': {'2': -36253.84938, '3': 78693.86806000001}}