словарь со значениями списка в качестве мультииндексного фрейма данных - PullRequest
2 голосов
/ 10 октября 2019

Я хочу получить многоиндексный фрейм данных из следующих словарей:

d = {'a' : [1,2,3], 'b' : [4,5], 'c': [7,8]}

Пробовал pd.DataFrame.from_dict(d, orient='index') без удачи

Ключи должны бытьиндекс первого уровня и значение второго уровня мультииндекса, желаемый результат будет:

a     1
      2
      3

b     4
      5

c     7
      8

Ответы [ 2 ]

4 голосов
/ 10 октября 2019

Вы можете использовать функцию взорвать из серии Pandas

pd.Series({'a': [1,2,3], 'b' : [4,5], 'c': [7,8]}).explode()

вернет

a    1
a    2
a    3
b    4
b    5
c    7
c    8
2 голосов
/ 10 октября 2019

с некоторой помощью от itertools

import pandas as pd
from itertools import chain, zip_longest

idx = chain.from_iterable([zip_longest(k, v, fillvalue=k) for k,v in d.items()])
pd.MultiIndex.from_tuples(idx)

MultiIndex([('a', 1),
            ('a', 2),
            ('a', 3),
            ('b', 4),
            ('b', 5),
            ('c', 7),
            ('c', 8)],
           )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...