Преобразование словаря списков в датафрейм - PullRequest
0 голосов
/ 16 мая 2019

Допустим, у меня есть словарь, который выглядит примерно так:
{'blue': [1,2,3], 'red' : [1,3]}
Я хотел бы преобразовать это в массив данных из двух столбцов, в котором один столбец является именем цвета (красным или синим)а другой это ценность.Возможно, что-то вроде этого:

blue    1
blue    2
blue    3
red     1
red     3

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

Спасибо.

Ответы [ 2 ]

2 голосов
/ 16 мая 2019

Возможно, самым простым способом было бы преобразовать ваш dict в список кортежей, прежде чем передать его pd.DataFrame

import pandas as pd

d = {'blue': [1,2,3], 'red' : [1,3]}

lst = [(k, i) for k, v in d.items() for i in v]

df = pd.DataFrame(lst)

df
       0    1
0   blue    1
1   blue    2
2   blue    3
3   red     1
4   red     3

1 голос
/ 16 мая 2019

Использование pandas.concat с pandas.Series:

d = {'blue': [1,2,3], 'red' : [1,3]}
s = pd.concat([pd.Series(v, index=np.repeat(k, len(v))) for k,v in d.items()])

print(s)
blue    1
blue    2
blue    3
red     1
red     3
dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...