Я хочу создать словарь словарей, как следует из названия, и найти самый простой способ сделать это.
Мой фрейм данных выглядит так:
+----------+---------------+-------------------------------+
| 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 |
ТОКН:
| JPY | 0.525 |
Гонконгская биржа:
| USD | 3.395 |
| HKD | 3.265 |
| CNH | 4.895 |






Как насчет чего-то вроде:
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)]
Можете ли вы указать дополнительную информацию и ожидаемый ответ?