Как получить вложенный словарь внутри списка в Dataframe?

1

Я пытаюсь получить данные из обмена api, и это, по-моему, в списке с dict внутри. Поэтому я хочу создать таблицу с именем, начальной ценой, ценой, высоким, низким и т.д. Вопрос: как мне попасть в формат dataframe? Индекс с pd.Dataframe работает, но только если это один запас.

pd.Series - это лучшее, что я получил до сих пор, и выглядит так:

1 {'BTC-ACM': {'initialprice': '0.00000390', 'pr...
0 {'BTC-AEON': {'initialprice': '0.00010617', 'p...

Исходные данные выглядят следующим образом:

[{'BTC-ACM': {'initialprice': '0.00000380', 'price': '0.00000428', 'high': 
'0.00000510', 'low': '0.00000351', 'volume': '0.24647930', '
 bid': '0.00000433', 'ask': '0.00000465'}}, {'BTC-AEON': {'initialprice': 
'0.00010652', 'price': '0.00011040', 'high': '0.00013774', 'lo
 w': '0.00010616', 'volume': '1.17486173', 'bid': '0.00011040', 'ask': 
'0.00011867'}},....]

Попытайтесь сделать это таблицей следующим образом:

Name   | InitialPrice |Price |High |Low|
BTC-ACM| 0.0000132    |0.123 |0.9  |0.2|
BTC-AEO| 0.2131243    |0.213 |0.2  |0.1|
Теги:
pandas

2 ответа

1
Лучший ответ

Измените ваши данные, а затем вызовите DataFrame.to_dict:

df = pd.DataFrame.from_dict(
    {k : d[k] for d in data for k in d}, orient='index')

df[['initialprice', 'price', 'high', 'low']]

         initialprice       price        high         low
BTC-ACM    0.00000380  0.00000428  0.00000510  0.00000351
BTC-AEON   0.00010652  0.00011040  0.00013774  0.00010616
  • 0
    спасибо, у вас есть ссылка, чтобы понять больше о преобразовании? Попытка понять: d[k] for d in data for k in d
  • 0
    @Machi Я просто сплющил твой список диктовок в один словарь, используя простое вложенное понимание словаря.
0

Вы можете попробовать:

pd.concat([pd.DataFrame(x).T for x in data])
  • 0
    Ах, это коварно лаконично, но совершенно неэффективно. Особенно, когда есть тысячи строк, создание тысяч фреймов данных, их транспонирование и конкатенация не очень хорошая идея.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню