Как создать фрейм данных из словаря списков разной длины - PullRequest
0 голосов
/ 18 февраля 2020

Предположим, у нас есть словарь

dict = {'list1' = ['a','b','e'],
        'list2' = ['a','c'],
        'list3' = ['a','b','d']}

Как мы можем создать фрейм данных, столбцы которого предварительно определены, как показано ниже

         a    b    c    d    e    f
list1    1    1    0    0    1    0
list2    1    0    1    0    0    0
list3    1    1    0    1    0    0

Будем весьма благодарны за любые предложения. Спасибо

1 Ответ

0 голосов
/ 18 февраля 2020

Это делает трюк:

import pandas as pd


def sets_to_dataframe(d, keys):
    rows = []
    index = []
    for label, values in d.items():
        index.append(label)
        rows.append([int(key in values) for key in keys])
    return pd.DataFrame(rows, index=index, columns=keys)


d = {
    "list1": ["a", "b", "e"],
    "list2": ["a", "c"],
    "list3": ["a", "b", "d"],
}

print(
    sets_to_dataframe(
        d, keys=["a", "b", "c", "d", "e", "f"]
    )
)

Вывод:

       a  b  c  d  e  f
list1  1  1  0  0  1  0
list2  1  0  1  0  0  0
list3  1  1  0  1  0  0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...