Конвертировать списки в диагональную матрицу DataFrame - PullRequest
0 голосов
/ 21 мая 2018

Мне возвращен список кортежей в этом формате:

[date1, date2, date3]
[ticker1, ticker2, ticker3]
[value1, value2, value3]

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

Ответы [ 3 ]

0 голосов
/ 21 мая 2018

Использование pivot

df=pd.DataFrame(lst).T
df.pivot(*df)

1     ticker1 ticker2 ticker3
0                            
date1  value1    None    None
date2    None  value2    None
date3    None    None  value3
0 голосов
/ 21 мая 2018
values = [(1, 0, 1), (2, 9, 4), (3, 10, 4), (9, 22, 30)]

data_frame = pd.DataFrame(values)
print(data_frame)

Мне нужно увидеть ваш конкретный код, потому что то, что вы обрисовали в общих чертах, кажется списком, а не списком кортежей.Но теоретически, если бы у вас был список кортежей, именно так вы бы создали из него DataFrame.Вот ваш вывод:

   0   1   2
0  1   0   1
1  2   9   4
2  3  10   4
3  9  22  30
0 голосов
/ 21 мая 2018

Series и unstack

lst = [['date1', 'date2', 'date3'],
       ['ticker1', 'ticker2', 'ticker3'],
       ['value1', 'value2', 'value3']]

pd.Series(lst[-1], lst[:2]).unstack()

      ticker1 ticker2 ticker3
date1  value1    None    None
date2    None  value2    None
date3    None    None  value3

defaultdict

from collections import defaultdict

lst = [['date1', 'date2', 'date3'],
       ['ticker1', 'ticker2', 'ticker3'],
       ['value1', 'value2', 'value3']]

dd = defaultdict(dict)

for d, t, v in zip(*lst):
    dd[t][d] = v

pd.DataFrame(dd)

      ticker1 ticker2 ticker3
date1  value1    None    None
date2    None  value2    None
date3    None    None  value3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...