创建字典字典Python

时间:2019-06-24 07:03:38

标签: python dictionary

我想在标题阅读时创建字典词典,并寻找最简单的方法。

我的数据框如下:

+----------+---------------+-------------------------------+
| Exchange | currency_code | interest rate                 |
+----------+---------------+-------------------------------+
| TOCN     | JPY           |                         0.525 |
| SGX      | SGD           |                         2.575 |
| SGX      | JPY           |                         0.725 |
| SGX      | USD           |                         2.605 |
| SGX      | CNH           |                         5.005 |
| SGX      | CNY           |                           0.0 |
| OSE      | JPY           |                         0.615 |
| NLFX     | USD           |                         3.305 |
| KIS      | KRW           |                           0.0 |
| HKEX     | USD           |                         3.395 |
| HKEX     | HKD           |                         3.265 |
| HKEX     | CNH           |                         4.895 |
| GOODM    | KRW           |                           0.0 |
| CME      | JPY           |                         0.525 |
| CME      | USD           |                         3.305 |
| CME      | CNH           |                         4.805 |
| Combined | JPY           |                         0.615 |
| Combined | USD           |                         3.305 |
| Combined | HKD           |                         4.155 |
| Combined | GBP           |                         1.545 |
| Combined | TWD           |                           0.0 |
| Combined | EUR           |                         0.375 |
+----------+---------------+-------------------------------+

我想创建一本词典(所有交易所) 字典(货币和利率)。

我尝试过的事情:

interestrate_dict = dict(zip(interestrate1['currency_code'],interestrate1['interest rate']))

但是我如何循环进行所有交换呢?

我应该过滤数据框并创建每个字典,还是有一种更简单的方法来做到这一点?

预期输出:

SGX:

| SGD           |                         2.575 |
| JPY           |                         0.725 |
| USD           |                         2.605 |
| CNH           |                         5.005 |
| CNY           |                           0.0 |

TOCN:

| JPY           |                         0.525 |

香港交易所:

| USD           |                         3.395 |
| HKD           |                         3.265 |
| CNH           |                         4.895 |

1 个答案:

答案 0 :(得分:1)

关于以下方面的事情如何?

df.groupby("Exchange").apply( lambda x: dict(zip(x["interest rate"],x["currency_code "])) )

我不确定为什么要使用嵌套的dict结构,我建议直接使用pandas的索引函数

如果您设置索引:

A = df.set_index(["Exchange","interest rate"])

然后您可以像在字典中一样进行查找

A.loc[(myExchange,myInterestare)]