将具有集合值的 python 字典转换为二进制数据帧



我有一个字典,其中设置了值:

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)

最新更新