У меня есть столбец, полный объектов, и я хочу добавить атрибуты объектов в качестве индекса столбца и их значения, индексированные с указателем времени - PullRequest
1 голос
/ 01 мая 2020

В настоящее время я извлек некоторые исторические данные из Oanda и создал фрейм данных в этом формате.

Затем я использовал df.set_index('time'), чтобы превратить столбец времени в индекс фрейма данных. Тем не менее, я застрял на этом кадре данных.

"o","h","l","c" представляет цены открытия, максимума, минимума и цены закрытия.

data = [
{'time': '2020-04-02T11:00:00','mid': { 'o': '1.09202', 'h': '1.09293', 'l' : '1.01282', 'c' : '1.09136'}},
{'time': '2020-04-02T12:00:00','mid': { 'o': '1.02102', 'h': '1.02193', 'l' : '1.01282', 'c' : '1.09136'}}]

Это то, где я застрял сейчас. У меня есть столбец, полный объектов, и я хочу добавить атрибуты объектов в качестве индекса столбца и их значения, индексированные с помощью индекса времени

    time                            |  mid 
0| 2020-04-02T11:00:00.000000000Z   | {'o': '1.09202', 'h': '1.09293', 'l': '1.01282', 'c' : '1.09136'}
1| 2020-04-02T12:00:00.000000000Z   | {'o': '1.02102', 'h': '1.02193', 'l': '1.01282', 'c' : '1.09136'}

Как получить его в формате ниже?

 time                          | o      | h       | l       | c 
2020-04-02T11:00:00.000000000Z | 1.09202 | 1.09293 | 1.01282 | 1.09136 
2020-04-02T12:00:00.000000000Z | 1.02102 | 1.02193 | 1.01282 | 1.09136

1 Ответ

0 голосов
/ 01 мая 2020

Итак, это примерный фрейм данных:

import pandas as pd


df = pd.DataFrame(
    [
        ['2020-04-02T', {'o': '1.09202', 'h': '1.09293', 'l': '1.09082', 'c': '1.09323'}]
    ], columns=['time', 'mid']
)
print(df)

          time                                                mid
0  2020-04-02T  {'o': '1.09202', 'h': '1.09293', 'l': '1.09082...

Теперь все, что вам нужно сделать, это:

df = pd.concat([df, pd.DataFrame(list(df.mid))], axis=1)
del df['mid']

и ключи словаря станут столбцами в фрейм данных:

print(df)
          time        o        h        l        c
0  2020-04-02T  1.09202  1.09293  1.09082  1.09323
...