我想在标题阅读时创建字典词典,并寻找最简单的方法。
我的数据框如下:
+----------+---------------+-------------------------------+
| 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 |
答案 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)]