Создать словарь словарей Python

Я хочу создать словарь словарей, как следует из названия, и найти самый простой способ сделать это.

Мой фрейм данных выглядит так:

+----------+---------------+-------------------------------+
| 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 |

Можете ли вы указать дополнительную информацию и ожидаемый ответ?

Kushan Gunasekera 24.06.2019 09:18
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
1
65
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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)]

Другие вопросы по теме