我有一个字典,其中设置了值:
my_dict = {1: {'a', 'b'}, 2: {'a', 'c'}, 3: {'b', 'c', 'd'}, 4: {'a'}}
我想将其转换为二进制数据帧,其中列是键集的成员,因此对于上面的示例,输出如下:
a b c d
1 1 1 0 0
2 1 0 1 0
3 0 1 1 1
4 1 0 0 0
我如何才能以高效和可扩展的方式完成它?
您可以使用pd.str.get_dummies
,如下所示:
my_dict = {1: {'a', 'b'}, 2: {'a', 'c'}, 3: {'b', 'c', 'd'}, 4: {'a'}}
ser = pd.Series({k: list(v) for k, v in my_dict.items()}).str.join('|').str.get_dummies()
print(ser)