Это делает трюк:
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