【发布时间】:2022-01-20 23:43:52
【问题描述】:
我有一本字典,即elas[key],编成如下:
{'Elasticity ACETYLCYSTEINE to ACETYLCYSTEINE AUSTRIA': '-0.028715155688298175',
'Elasticity ACETYLSALICYLIC ACID to ACETYLCYSTEINE AUSTRIA': '-0.02808962598080608',
'Elasticity ACICLOVIR to ACETYLCYSTEINE AUSTRIA': '0.14357198802565055**',
'Elasticity ACETYLCYSTEINE to ACETYLSALICYLIC ACID AUSTRIA': '0.020617153039633438',
'Elasticity ACETYLSALICYLIC ACID to ACETYLSALICYLIC ACID AUSTRIA': '-0.008093962793053928',
'Elasticity ACICLOVIR to ACETYLSALICYLIC ACID AUSTRIA': '-0.09969671142491694',
'Elasticity ACETYLCYSTEINE to ACICLOVIR AUSTRIA': '0.055992183391380713',
'Elasticity ACETYLSALICYLIC ACID to ACICLOVIR AUSTRIA': '0.007574018836887331',
'Elasticity ACICLOVIR to ACICLOVIR AUSTRIA': '-0.4614966705921674**',
'Elasticity ACETYLCYSTEINE to ACETYLCYSTEINE BELGIUM': '-0.0337746122737748',
'Elasticity ACETYLSALICYLIC ACID to ACETYLCYSTEINE BELGIUM': '0.020318835241479816',
...
在多个国家/地区继续。
我想做的是一个熊猫数据框,其中包含 n 行,n 是字典(行)中唯一的键数,k 列是我拥有的国家的数量。 每个单元格 (row,k) 都应该将 elas 字典的每个值作为值。请注意,indices_list 只不过是一个列表,其中包含 elas 的键名而没有国家/地区名称。 所以理想情况下是这样的:
AUSTRIA BELGIUM
ACETYLCYSTEINE to ACETYLCYSTEINE -0.028715155688298175. -0.03377
ACETYLSALICYLIC ACID to ACETYLCYSTEINE. -0.02808962598080608 0.02031
ACICLOVIR to ACETYLCYSTEINE 0.14357198802565055**. ...
ACETYLCYSTEINE to ACETYLSALICYLIC ACID 0.020617153039633438
ACETYLSALICYLIC ACID to ACETYLSALICYLIC ACID. -0.008093962793053928
ACICLOVIR to ACETYLSALICYLIC ACID -0.09969671142491694
ACETYLCYSTEINE to ACICLOVIR 0.055992183391380713
ACETYLSALICYLIC ACID to ACICLOVIR 0.007574018836887331
ACICLOVIR to ACICLOVIR -0.4614966705921674**
其实我有如下代码
elasticity_by_ctry = pd.DataFrame(columns=keys, index=indices_list)
for k in keys:
conto=0
for key, item in elas.items():
elasticity_by_ctry.at[indices_list[conto],k] = elas[key]
#elasticity_by_ctry.loc[indices_list[conto],k] = elas[key]
conto=conto+1
elasticity_by_ctry
但它很幼稚,行不通。 你能帮我解决这个问题吗?
谢谢,
费德里科
【问题讨论】:
-
看来您必须运行
for-loop 才能获取'Elasticity ACETYLCYSTEINE to ACETYLCYSTEINE AUSTRIA'之类的密钥并转换为["AUSTRIA"]["ACETYLCYSTEINE to ACETYLCYSTEINE"]等,然后再将其转换为DataFrame
标签: python pandas dataframe dictionary